方法一:
使用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即可。
本文介绍了两种在Java环境中执行Python代码的方法:一是利用内置的ScriptEngineManager运行Python语句和脚本,需要注意脚本不应包含codeType声明;二是引入jython库,通过jython jar包执行Python脚本,推荐使用版本为2.7-b1,避免执行错误。

649

被折叠的 条评论
为什么被折叠?



