2009-04-23 62 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