2009-04-23 63 views
1

我需要訪問從該腳本運行jython腳本的java類嗎? 有什麼幫助嗎?來自jython的Java類

更新: 事情是這樣的:

//JAVA CLASS 
class Test{ 
    public String text; 
    public Test 
    { 
     PythonInterpreter pi = new PythonInterpreter(null); 
     pi.execfile("test.py"); 

    } 

} 

所以INT test.py我需要做一些事情來改變測試類文本的價值

#test.py 
doSomething() 
Text.test = "new value" 

希望這是更清晰

+1

你能澄清嗎?你的意思是一個產生了Jython腳本的類嗎? – 2009-04-23 15:36:24

回答

5

Java類實例傳遞給embeded jython你需要做的:

PythonInterpreter interp = new PythonInterpreter(); 
    interp.set("a", this); 
    interp.exec("a.test = 'new value'"); 

如果你想打電話從外部腳本函數(即取實例作爲參數):

PythonInterpreter interp = new PythonInterpreter(); 
    interp.set("a", this); 
    interp.exec("import externalscript"); 
    interp.exec("externalscript.function(a)"); 
0

你必須在你的Jython代碼的頂部導入你的測試類。我相信這將是沿着

from com.examplepackage import Test 

線您還可以設置你的文本價值爲靜態或Java對象傳遞到Jython的方法的東西。

查看文章here