2010-07-02 62 views
1

有人能找到什么是错的验证码(在文件和文件夹使用存在指定的)问题与运行流程执行

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) 

回答

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

+0

你是对的盖德,我有你点运行,这解决了我的问题上面,但现在我面对的另一个问题。我尝试通过Java运行python文件并获得以下错误:“java.io.IOException:无法运行程序”C:\ Temp \ create-application.py“:CreateProcess错误= 193,%1不是有效的Win32应用程序”。 Python安装在我的机器上,我可以在命令提示符下运行所有​​???.py – WSK 2010-07-02 16:20:52

+0

对于第一个rt.exec参数,使用“cmd/c C:\ Temp \ create-application.py”。这应该工作,否则尝试“启动C:\ Temp \ create-application.py”。 Greetz GHad – GHad 2010-07-02 23:40:02

1

你确定你的bat文件位于“C:\Temp\myExec.bat”吗?

(只是猜测,但要确保该文件实际上并未叫C:\Temp\myExec.bat.txt

+0

是文件和文件夹是正确的,我可以从命令提示符 – WSK 2010-07-02 15:51:54