Класс Java от jython - PullRequest
       17

Класс Java от jython

1 голос
/ 23 апреля 2009

Мне нужен доступ к Java-классу, на котором запущен jython-скрипт из этого скрипта? Любая помощь?

обновление: Примерно так:

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

     }

}

Итак, int test.py Мне нужно что-то сделать, чтобы изменить значение текста в классе Test

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

Надеюсь, это понятнее

Ответы [ 2 ]

5 голосов
/ 23 апреля 2009

Чтобы передать экземпляр класса Java в встраиваемый 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 голосов
/ 23 апреля 2009

Вы должны импортировать свой тестовый класс вверху кода Jython. Я считаю, что это было бы что-то вроде

from com.examplepackage import Test

Вам также нужно будет установить статическое значение текста или передать объект Java в метод Jython.

Проверьте статью здесь .

...