如何使用Jython执行if语句

时间:2015-02-01 16:45:04

标签: java python jython

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语句?

2 个答案:

答案 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");
    }
}