来自jython的Java类

时间:2009-04-23 15:33:38

标签: java jython

我需要从该脚本访问运行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"

希望更清楚

2 个答案:

答案 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