Могу ли я импортировать файлы классов Java в JRuby?
-
06-07-2019 - |
Вопрос
Документация, похоже, предполагает, что для того, чтобы я мог импортировать классы Java в JRuby, они должны находиться в файле JAR:
"Чтобы использовать ресурсы внутри файла jar из JRuby, файл jar должен либо находиться в classpath, либо вы можете сделать его доступным с помощью метода require" (http://wiki .jruby.org/wiki/Calling_Java_from_JRuby#Require_a_jar_file_to_make_resources_in_the_jar_discoverable_within_JRuby)
Возможно ли вообще импортировать файлы .class напрямую?
Спасибо!
Решение
Мне удалось ответить на свой собственный вопрос :)
Если файлы вашего класса скомпилированы по относительному пути "target", напримерfoo.Панель расположена в "target/foo/Bar.class", затем вы делаете следующее:
require 'java'
require 'target/foo/Bar'
module Foo
include_package 'foo'
end
puts Foo::Bar.new
И результат:
foo.Bar@1582a7c
Другие советы
Я думаю, вы также могли бы:
require 'java'
$CLASSPATH << "target"
и тогда
foo.bar.baz.Class.new() # ...
# or
java_import 'foo.bar.baz.Class'