如何从Java类中调用python方法?
问题内容:
我在Java项目中使用Jython。
我有一个Java类:myJavaClass.java
和一个Python类:myPythonClass.py
public class myJavaClass{
public String myMethod() {
PythonInterpreter interpreter = new PythonInterpreter();
//Code to write
}
}
Python文件如下:
class myPythonClass:
def abc(self):
print "calling abc"
tmpb = {}
tmpb = {'status' : 'SUCCESS'}
return tmpb
现在的问题是我想abc()
从myMethod
Java文件的方法调用Python文件的方法并打印结果。
问题答案:
interpreter.execfile("/path/to/python_file.py");
PyDictionary result = interpreter.eval("myPythonClass().abc()");
或者,如果您想获取字符串:
PyObject str = interpreter.eval("repr(myPythonClass().abc())");
System.out.println(str.toString());
如果要向其提供Java变量的某些输入,则可以set
预先使用,而不要在Python代码中使用该变量名:
interpreter.set("myvariable", Integer(21));
PyObject answer = interpreter.eval("'the answer is: %s' % (2*myvariable)");
System.out.println(answer.toString());