Как включить jar зависимости класса в JRuby? - PullRequest
0 голосов
/ 30 декабря 2018

У меня проблемы с выяснением, как включить / импортировать / потребовать mydependency.jar, от которого зависит MyJavaClass (в файле MyJavaClass.class).MyJavaClass содержит множество import операторов, импортирующих классы из mydependency.jar.Все находится в одном каталоге.

Когда я запускаю java -cp '.:mydependency.jar' MyJavaClass в командной строке, я не получаю ошибки и, помещая некоторые вызовы в main, я могу заставить его работать так, как я хочу, но когда язапустить ruby my_ruby_file.rb с JRuby в командной строке. Я получаю NoClassDefFoundError для первого импортированного класса (который импортируется из mydependency.jar) в файле MyJavaClass.class.Трассировка стека для ошибки указывает на строку java_import в my_ruby_file.rb, поэтому кажется, что он не находит должным образом классы, импортированные из mydependency.jar, которые включены в мой файл MyJavaClass.class, хотя он нормально работает в обычном режиме.Среда Java.

# contents of my_ruby_file.rb

require 'java'
require './mydependency.jar'

java_import 'MyJavaClass'

MyJavaClass.new.myJavaInstanceMethod('argument')

1 Ответ

0 голосов
/ 30 декабря 2018

Моя $CLASSPATH переменная окружения не была установлена, что необходимо для того, чтобы JRuby смог найти мой jar.После того, как я запустил export CLASSPATH=".:mydependency.jar" в командной строке и удалил строку require './mydependency.jar', все заработало.

...