2010-07-02 61 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