關於JAVA Project.waitfor()返回值是1


Project.waitfor()返回值是1,找了很久從網上沒有發現關於1的說明。

這時對源代碼調試了一下,發現Project=null.而去根目錄下點擊被調用的bat文件發現也可以被正確執行。

這時想到應該將標准錯誤流的信息打印出來,發現是bat文件的路徑只獲取到了第一個空格前。所以問題的原因是空格導致文件路徑不能被獲取。

 原先的代碼

String batpath = file.getCanonicalPath() + "\\resources\\runTest.bat";

//run bat file

Process project = Runtime.getRuntime().exec("cmd.exe /c " + batpath);

int exitcode=project.waitFor();

//kill the process

project.destroy();

logger.info(exitcode);

 

 修改后的代碼

//run bat file

Process project = Runtime.getRuntime().exec("cmd.exe /c " + batpath.replaceAll(" ", "\" \""));

 此次解決問題的經驗是:

不要盲目的先去網上找答案,要先將自己的程序調試一下,將錯誤信息打印出來,然后針對錯誤信息有針對性的去網上找答案。這樣做比較有效。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM