Java execute shell命令错误[无法运行程序“sh”:CreateProcess error=2,系统找不到指定的文件]

2024-04-27 00:50:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用shell命令从java执行python脚本 文件位置:d:/python/test.py

下面是我的java程序

def callstme(){
        Process p
        try {

            List<String> cmdList = new ArrayList<String>();
            cmdList.add("sh");
            cmdList.add("d:/python/test.py");
            ProcessBuilder pb = new ProcessBuilder(cmdList);
            p = pb.start();

            p.waitFor();
            BufferedReader reader=new BufferedReader(new InputStreamReader(
             p.getInputStream()));
            String line;
            while((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

执行时我得到了错误

"java.io.IOException: Cannot run program "sh": CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)

Tags: pytestaddnewstringshlinejava