import org.python.util.PythonInterpreter;
public class JythonTest {
public static void main(String[] args) {
PythonInterpreter interp = new PythonInterpreter();
interp.exec("if 2 > 1:");
interp.exec(" print('in if statement!'");
}
}
我需要能够从Java程序执行Python代码,所以决定试用Jython,但我不熟悉它。我尝试执行上面的代码,但得到了错误:“线程中的异常”主“SyntaxError :(”不匹配的输入''期待INDENT“,('',1,9,'如果2> 1:\ n') )”。任何想法这意味着什么或如何使用PythonInterpreter执行if语句?
答案 0 :(得分:1)
条件必须作为单个字符串输入,并且您有一个额外的括号:
import org.python.util.PythonInterpreter;
public class JythonTest {
public static void main(String[] args) {
PythonInterpreter interp = new PythonInterpreter();
interp.exec("if 2 > 1: print 'in if statement!'");
}
}
答案 1 :(得分:0)
您可以调用解释器来运行文件,而不是逐行执行脚本。您所要做的就是提供python文件的文件路径,在此示例中将script.py
放在src
文件夹中。
script.py
if 2 > 1:
print 'in if statement'
JythonTest.java
import org.python.util.PythonInterpreter;
public class JythonTest {
public static void main(String[] args) {
PythonInterpreter interp = new PythonInterpreter();
interp.execfile("src/script.py");
}
}