java 利用Runtime.getRuntime().exec()调用python脚本
1、将写好的py脚本放置在Java工程的根目录下,方便管理和引用,当然也可以存放在本地;
2、编写python脚本,以最经典常见的代码为例:
import sys
import urllib
print "hello" #打印“hello”
print sys.path #打印python的安装路径
import urllib
print "hello" #打印“hello”
print sys.path #打印python的安装路径
3、编写class文件,代码如下:
package python;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class test {
public static void main(String[] args){
try{
System.out.println("start"); //控制台打印"start"
Process pr = Runtime.getRuntime().exec("python jtpython.py"); //此行代码为核心,调用py脚本
BufferedReader in = new BufferedReader(new
InputStreamReader(pr.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
pr.waitFor();
System.out.println("end"); //控制台打印"end"
} catch (Exception e){
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class test {
public static void main(String[] args){
try{
System.out.println("start"); //控制台打印"start"
Process pr = Runtime.getRuntime().exec("python jtpython.py"); //此行代码为核心,调用py脚本
BufferedReader in = new BufferedReader(new
InputStreamReader(pr.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
pr.waitFor();
System.out.println("end"); //控制台打印"end"
} catch (Exception e){
e.printStackTrace();
}
}
}
4、测试
一般地,完成前三步即可成功实现 java 调用python脚本,但是 有时候会显示以下错误:
open java.io.IOException: Cannot run program "python": CreateProcess error=2, 系统找不到指定的文件。at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)at java.lang.Runtime.exec(Runtime.java:620) at java.lang.Runtime.exec(Runtime.java:450)at java.lang.Runtime.exec(Runtime.java:347) at python.test.main(test.java:13) Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。at java.lang.ProcessImpl.create(Native Method)at java.lang.ProcessImpl.<init>(ProcessImpl.java:386)at java.lang.ProcessImpl.start(ProcessImpl.java:137)at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)... 4 more
解决方法:(配置Run Configuration中的Enviroment,增加PATH变量,请注意:名字必须是PATH!!!)
具体步骤:1)Run-Run Configurations...-Environment-New,Name设置为:PATH,Value设置为:python的安装路 径,例如:D:\Program\python27
2)点击ok,在“Append environment to native environment ”前打勾,点击Apply,然后Close。
3)重新运行class文件,在控制台可以打印出以下字符串:
start
hello
[class所在目录以及python安装的一些目录等]
end
hello
[class所在目录以及python安装的一些目录等]
end