需求:在Java项目中需要执行Python文件,携带参数,保存返回的结果
实现代码:
(无需引入第三方jar包,执行python文件需保证本地或者服务器执行的环境有python编译器并有依赖库)
@Override
public List runPythonTest(String paramStr) {
Map<String, Object> paramMap = JSON.parseObject(paramStr, Map.class); //获取参数转为map
System.out.println("参数Map: " + paramMap);
String str = paramMap.get("str").toString();
//服务器跑的python命令
String args1 = "python3"+" /root/tjgl_projects/jd2/pyFiles/requestVideos.py " +str;
//本地跑的python命令
//String args1 = "python F:\\千峰Python学习\\Python基础知识\\Day1Code\\requestVideos.py "+str;
String line = null;
List resultList = new ArrayList();
try {
Process process = Runtime.getRuntime().exec(args1);
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((line = in.readLine()) != null) {
System.out.println(line);
resultList.add(line);
}
in.close();
int re = process.waitFor();
System.out.println(re);
} catch (Exception e) {
e.printStackTrace();
}
return resultList;
}