2009-01-09 26 views
7

Tài liệu dường như gợi ý rằng để tôi nhập các lớp Java vào JRuby, chúng phải nằm trong tệp JAR:Tôi có thể nhập các tệp lớp Java vào JRuby không?

"Để sử dụng tài nguyên trong tệp jar từ JRuby, tệp jar phải là trên đường dẫn lớp hoặc bạn có thể cung cấp phương thức này theo phương thức yêu cầu " (http://wiki.jruby.org/wiki/Calling_Java_from_JRuby#Require_a_jar_file_to_make_resources_in_the_jar_discoverable_within_JRuby)

Có thể nhập trực tiếp các tệp .class không?

Cảm ơn!

Trả lời

8

Tôi đã quản lý để trả lời câu hỏi của riêng mình :)

Nếu tệp lớp học của bạn được biên dịch thành đường dẫn tương đối là "mục tiêu", ví dụ: foo.Bar nằm trong "mục tiêu/foo/Bar.class", sau đó bạn làm như sau:

require 'java' 
require 'target/foo/Bar' 

module Foo 
    include_package 'foo' 
end 

puts Foo::Bar.new 

Và kết quả:

[email protected] 
5

Tôi nghĩ bạn cũng có thể:

require 'java' 
$CLASSPATH << "target" 

và sau đó

foo.bar.baz.Class.new() # ... 
# or 
java_import 'foo.bar.baz.Class' 
+1

$ CLASSPATH thay vì $ CLASS_PATH – fjsj

+0

thx !, cố định nó, cổ vũ reto – reto

Các vấn đề liên quan