使用jython和ScriptEngineManager在java中执行python

来源:互联网 发布:全国最大数据库 编辑:程序博客网 时间:2024/04/30 17:54

方法一:

使用java内置的ScriptEngineManager进行python脚本调用,只要是在java6及以上即可。

1、 直接运行python语句:

/** *  使用ScriptEngine执行python语句 */public void runPythonScript() {ScriptEngineManager manager = new ScriptEngineManager();ScriptEngine engine = manager.getEngineByName("python");try {engine.eval("print \"hello \" ");} catch (Exception ex) {ex.printStackTrace();}}

2、 执行python脚本

<span style="white-space:pre"></span>/** *执行python脚本文件 */public void runPythonScript1(){try {FileReader fr =  new FileReader("test.py");ScriptEngineManager manager = new ScriptEngineManager();ScriptEngine engine = manager.getEngineByName("python");engine.eval(fr);fr.close();} catch (Exception ex) {ex.printStackTrace();}}

注意:所调用的python脚本不要指明codeType,否则会执行出错(尽管我文件中所申明的编码和文件实际编码一致,都是utf-8,但是总出错,去掉文件内的编码申明即可):

   

方法二:

调用jython执行python脚本。

1、 引入jython的jar包,如果是maven工程,则加入如下依赖:

            <dependency>    <groupId>org.python</groupId>    <artifactId>jython</artifactId>    <version>2.7-b1</version>    </dependency>
2、 直接调用

<span style="white-space:pre"></span>/** *使用jython运行python脚本 */public void runPythonScript2() {PythonInterpreter interpreter = new PythonInterpreter();interpreter.execfile("test.py");}

注意:官网最新版本是2.7-b4,但是如果你使用了它的话,则会如下失败,使用2.7-b1即可。



0 0
原创粉丝点击