运行时进程执行问题

时间:2010-07-02 13:50:51

标签: java runtime.exec

有人可以找到这段代码的错误:

Runtime rt = Runtime.getRuntime();
Process pr;
File myFolder = new File("C:\\Temp");
pr = rt.exec("myExec.bat", null, myFolder);
pr.waitFor();
pr.destroy();

当我运行此代码时,我得到以下异常(当使用的文件和文件夹存在时):

java.io.IOException: Cannot run program "myExec.bat" (in directory "C:\Temp"): CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
    at java.lang.Runtime.exec(Runtime.java:593)
    at java.lang.Runtime.exec(Runtime.java:431)
    at com.radml.radmlp.main(Test.java:10)

2 个答案:

答案 0 :(得分:4)

rt.exec要求没有路径信息的文件位于用户目录中,而不是在您指定用作工作目录的目录中。以这种方式使用

    Runtime rt = Runtime.getRuntime();
    Process pr;
    File myFolder = new File("C:\\Temp");
    pr = rt.exec(new File(myFolder, "myExec.bat").getAbsolutePath(), null, myFolder);
    pr.waitFor();
    pr.destroy();
只要文件c:\ Temp \ myExec.bat存在,

就可以正常工作。

格尔茨, GHAD

答案 1 :(得分:1)

您是否确定您的bat文件位于“C:\Temp\myExec.bat”?

(只是一个猜测,但确保文件实际上没有被调用 C:\Temp\myExec.bat .txt