Могу ли я импортировать файлы классов Java в JRuby? - PullRequest
7 голосов
/ 09 января 2009

Документация предполагает, что для того, чтобы я мог импортировать классы Java в JRuby, они должны быть в файле JAR:

"Чтобы использовать ресурсы в файле jar из JRuby, файл jar должен быть либо в пути к классам, либо вы можете сделать его доступным с помощью метода require" (http://wiki.jruby.org/wiki/Calling_Java_from_JRuby#Require_a_jar_file_to_make_resources_in_the_jar_discoverable_within_JRuby)

Можно ли вообще импортировать файлы .class напрямую?

Спасибо!

Ответы [ 2 ]

8 голосов
/ 09 января 2009

Мне удалось ответить на мой собственный вопрос:)

Если ваши файлы классов скомпилированы по относительному пути «target», например foo.Bar находится в "target / foo / Bar.class", тогда вы делаете следующее:

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

module Foo
  include_package 'foo'
end

puts Foo::Bar.new

И результат:

foo.Bar@1582a7c
5 голосов
/ 09 декабря 2009

Я думаю, вы могли бы также:

require 'java'
$CLASSPATH << "target"

, а затем

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