如何在JRuby中包含类依赖项jar?

时间:2018-12-29 22:11:30

标签: ruby jruby

我在弄清楚如何包含/导入/要求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 :(得分:0)

我的$CLASSPATH环境变量未设置,为了使JRuby能够找到我的jar,必须设置它。在命令行上运行export CLASSPATH=".:mydependency.jar"并删除了require './mydependency.jar'行之后,它就起作用了。