今天在用java调用python进行执行时发现了一个错误,也就是下面这个错误。
java.io.IOException: Cannot run program "python3": CreateProcess error=2, 系统找不到指定的文件。
程序是这样的
Process proc;
String line = null;
try {
// 执行py文件
proc = Runtime.getRuntime().exec("python C:\\poissionDis.py");
//用输入输出流来截取结果
BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
int count = 0;
while ((line = in.readLine()) != null) {
// XXXX对输出结果进行逻辑处理
}
然后报错了就报了上面的错误。
解决方案(有点暴力,但是有效):
将python的执行改为绝对路径,也就是找到python.exe的所在位置,因为我是用anaconda安装的,所以程序修改如下
Process proc;
String line = null;
try {
// 执行py文件
proc = Runtime.getRuntime().exec("E:\anaconda\python.exe C:\\poissionDis.py");
//用输入输出流来截取结果
BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
int count = 0;
while ((line = in.readLine()) != null) {
// XXXX对输出结果进行逻辑处理
}
最终结果,ok,输出流成功截取到输出的结果。