有人可以找到这段代码的错误:
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)
答案 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
)