我需要从该脚本访问运行jython脚本的java类吗? 有什么帮助吗?
更新: 像这样:
//JAVA CLASS
class Test{
public String text;
public Test
{
PythonInterpreter pi = new PythonInterpreter(null);
pi.execfile("test.py");
}
}
所以int test.py我需要做些什么来改变Test class
中的文本值#test.py
doSomething()
Text.test = "new value"
希望更清楚
答案 0 :(得分: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)");
答案 1 :(得分:0)
您必须在Jython代码的顶部导入测试类。
我认为这将是一些事情from com.examplepackage import Test
您还可以将文本值设置为static,或将Java对象传递给Jython方法。
查看文章here。