2009-09-03 40 views
8

Tôi đang sử dụng Netbeans để viết Scala và Java.Gọi mã Scala từ Java?

Netbeans đã tạo tệp .jar cho dự án Scala. Tôi đã thử nhập tệp đó trong dự án Java. Nhưng tôi không thể nhập bất kỳ lớp nào từ tệp .jar đó vào dự án Java của tôi.

Tôi cũng đã thử nhập scala-library.jar vào dự án java và có thể nhập các lớp từ jar đó.

Tôi muốn viết thư viện của mình ở Scala, sau đó hiển thị giao diện nhỏ chỉ liên quan đến công cụ Java, sau đó viết trình bao bọc Java để mọi người có thể sử dụng nó làm gói Java. Điều đó có thể không? Tôi phải làm nó như thế nào?

Cảm ơn bạn rất nhiều.

+1

Nếu bạn có thời gian để theo dõi những gì đã xảy ra, sẽ rất hữu ích khi đặt câu trả lời ở đây. –

Trả lời

8

Sẽ không có vấn đề gì khi thực hiện việc này.

  1. Bạn đã xác minh (ví dụ sử dụng WinZip hoặc jar tiện ích) mà tập tin .jar của bạn thực sự chứa .class file có liên quan? (sử dụng jar tvf mylib.jar để kiểm tra)
  2. Nếu bạn đã xác minh rằng các tệp .class chính xác tồn tại trong tệp jar của mình, lỗi thời gian chạy bạn đang thấy là gì? Có phải là NoClassDefFoundError không? Nếu vậy, bạn không thể tìm thấy class nào? Bạn đang đề cập đến lớp (Scala) trong mã (Java) của bạn như thế nào?
+0

Oh cảm ơn bạn. Hóa ra điều này là do tôi thiếu kiến ​​thức trong Java. Tôi đã so sánh gói của mình với scala-library.jar rồi làm như sau: 1. đảm bảo tất cả các lớp và gói con dưới cùng một gói gốc 2. chỉnh sửa tệp MANIFEST.MF, với tệp từ scala-library.jar là một ví dụ Sau đó, tôi có thể gọi các lớp Scala của tôi từ Java. Tôi vẫn chưa rõ vấn đề là gì, nhưng bây giờ tôi đang vội. Tôi sẽ tìm hiểu sau. Cảm ơn nhiều :) – Phil