如何在 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'
后,它起作用了。
我无法弄清楚 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'
后,它起作用了。