在 Jruby 中访问 .jar 中的 java 类

Access java classes inside .jar in Jruby

我目前正在开发我的 Jruby 应用程序,它包含在一个 .jar 文件中。

在 jar 中,我的文件结构如下所示:

lib/launch.rb
lib/src/class1.rb
       /class2.rb
lib/com/class1.class
       /class2.class

其中'class1.class'和'class2.class'是使用jrubyc class1.rbjrubyc class2.rb

编译的

我想在 'launch.rb'.

内访问 'class1.class' 和 'class2.class' 内的这些方法
#launch.rb 

require 'java'
$CLASSPATH << "com" 
java_import 'class1'
java_import 'class2'

但是,我目前 运行 陷入这个问题 :

NameError: cannot load Java class 'class1'

是否有其他方法可以在 class1 和 class 中导入和访问这些方法?

com 听起来像包名,你想要的是将 lib 添加到 CP :

$CLASSPATH << File.expand_path('lib')
# now import the class with the full name (including package) :
java_import 'com.class1'
# ... or simply just :
Java::com.class1

但假设它是一个(已编译的).rb 脚本,也许您只想加载它:

$LOAD_PATH << 'lib'
require 'class1'