如何在 JRuby 中包含 class 依赖 jar?

How to include class dependency jar in JRuby?

我无法弄清楚 include/import/require mydependency.jar MyJavaClass(在 MyJavaClass.class 文件中)所依赖的方法。 MyJavaClass 包含许多 import 语句从 mydependency.jar 导入 classes。一切都在同一个目录中。

当我在命令行上 运行 java -cp '.:mydependency.jar' MyJavaClass 时,我没有收到任何错误,并且通过在 main 中进行一些调用,我可以按照我想要的方式将其设置为 运行 ,但是当我在命令行上使用 JRuby 运行 ruby my_ruby_file.rb 时,我得到 NoClassDefFoundError 对于第一个 class 导入(从 mydependency.jar 导入) MyJavaClass.class 文件。错误的堆栈跟踪指向 my_ruby_file.rb 中的 java_import 行,因此它似乎没有正确找到我的 [=] 中包含的从 mydependency.jar 导入的 classes 14=] 文件,即使它 运行 在正常的 Java 环境中没问题。

# contents of my_ruby_file.rb

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

java_import 'MyJavaClass'

MyJavaClass.new.myJavaInstanceMethod('argument')

我的 $CLASSPATH 环境变量没有设置,JRuby 需要设置它才能找到我的 jar。我在命令行上 运行 export CLASSPATH=".:mydependency.jar" 并删除行 require './mydependency.jar' 后,它起作用了。