方法一:
使用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即可。