java.io.IOException: Cannot run program “python3“: CreateProcess error=2, 系统找不到指定的文件。

今天在用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,输出流成功截取到输出的结果。

你可能感兴趣的:(java基础,java调用python报错,python,java)