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,但我不熟悉它。我尝试执行上面的代码,但收到错误:“线程“ main”中的异常” SyntaxError :(“输入不匹配”,预计为INDENT”,(“ 1、9,'if 2> 1:\ n')) ”。有什么想法意味着什么,或者如何使用PythonInterpreter执行if语句?

最佳答案

必须将条件词作为单个字符串输入,并且您需要附加括号:

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!'");
    }
}

10-08 08:15