我在弄清楚如何包含/导入/要求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')
答案 0 :(得分:0)
我的$CLASSPATH
环境变量未设置,为了使JRuby能够找到我的jar
,必须设置它。在命令行上运行export CLASSPATH=".:mydependency.jar"
并删除了require './mydependency.jar'
行之后,它就起作用了。