在Jruby中访问.jar中的java类

时间:2017-12-08 09:45:37

标签: java ruby jruby

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

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

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

where' class1.class'和' class2.class'使用jrubyc class1.rbjrubyc class2.rb

进行编译

我想在' class1.class'中访问这些方法。和' class2.class'内部' launch.rb'。

#launch.rb 

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

但是,我目前遇到了这个问题:

NameError: cannot load Java class 'class1'

是否有另一种方法可以在class1和class中导入和访问这些方法?

1 个答案:

答案 0 :(得分:1)

$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 听起来像包名,你想要的是将 lib 添加到CP:

$LOAD_PATH << 'lib'
require 'class1'

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

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:gravity="bottom|center_horizontal"
    android:orientation="vertical">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"/>

</LinearLayout>