2016-08-30 22 views
1

调用java方法,我性学习的JRuby和我在我的日食如何从JRuby的

public class Test { 
    public Test() 
    { 
     System.out.print("object created"); 
    } 
    public static void main(String args[]) 
    {} 
} 

下面的代码现在我出口这个项目作为runnable jar。因为runnable jar寻找主要方法,所以我创建了主要方法。现在

我可以在JRuby中创建的Test Class对象这样

require 'java' 
require 'test.jar' 

foo = Test.new 

,它是给我的输出object created

现在我想将其导出为jar,而不是runnable jar。所以对于出口项目jarmain method是不需要的。

所以我的Java代码看起来像这样

public class Test { 
    public Test() 
    { 
    System.out.print("object created"); 
    } 
} 

那么我再次创造Test Class相同的对象上面

require 'java' 
require 'test.jar' 

foo = Test.new 

现在,这是给我的错误

NameError: uninitialized constant Test 
    const_missing at org/jruby/RubyModule.java:3309 
      <top> at test.rb:4 

由于我是jruby的新手,我不知道为什么输出为runnable jar作品但输出为jar不起作用。

哪一个是最好的方式,导出为runnable jar或导出为jar

请详细解释,因为我是jruby的新手而且没有提供太多的文档。

回答

0

为了访问未指定完整限定名称的java类(如package.name.ClassName),应该使用java_import方法(请参阅更多详细信息in documentation)导入该类。

假设类Testorg.test包中。然后ruby代码应该看起来像下面这样:

require 'java' 
require 'test.jar' 
java_import org.test.Test 

foo = Test.new