2010-05-04 32 views
7

所以我提出了在JRuby中編寫一些代碼的總體思路,然後通過Java訪問所有類。我不知道這是否可能,但我想問問。可以說,我 有一些JRuby的代碼:你可以從java調用編譯的JRuby類嗎?

class adder 
    def addme 
     return 22 
    end 
end 

如果我編這與jrubyc有沒有什麼辦法,然後我可能做這樣的事情在Java:

import adder; 
class anything { 
    void testMethod() 
    { 
     adder a = new adder(); 
     int x = a.addme(); 
    } 
} 

它現在正在尋找它後有點讓我覺得Java將不知道什麼樣的項目測試addme會返回,所以這可能無法正常工作。我不知道,但我想把它扔出去。

感謝

回答

1

其實有兩種方法可以從Java第一較慢調用Ruby代碼,但你可以在運行時更改是調用腳本引擎就像從這個link。但至於你是如何做到的,jrubyc編譯紅寶石Java字節碼,這意味着java會看到它作爲Java代碼

jrubyc adder.rb --java 編譯文件「adder.rb」作爲類「Adder.class」

,並就像你做......

所以你會調用它像任何其他Java類

import org.jruby.RubyObject 

Adder ad = new Adder(); 

RubyObject ro = ad.addme(); 

resource

+0

不幸的是,這並不適合我。它找不到addme()方法。這絕對是公開的,所以我不知道爲什麼 – 2010-05-04 23:34:53

相關問題