2016-08-30 50 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