JAVA中ProcessBuilder執行cmd命令找不到路徑的解決方法


今天遇到了一個很奇葩的問題,終於解決了,記一下,以做備忘。

前提條件:工程路徑在D盤下

     cmd要執行的可執行文件路徑不在D盤下

然后。。。出事了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

ProcessBuilder pb = new ProcessBuilder("BCompare.exe", "@C:\script.txt"); 
pb.directory(new File("C:\\.........")); 
Process p1= pb.start();

 

  

執行后一直報錯,提示無效的命令,最后在各種實驗下找到原因,可執行程序exe和工程不在一個盤符下就會報錯。。

 

終於,找到了解決方法。。就是。。執行的程序上絕對路徑。。。。於是,成了這樣

String absolutePath = "......" //絕對路徑目錄

ProcessBuilder pb = new ProcessBuilder(absolutePath + "BCompare.exe", "@C:\script.txt"); 
pb.directory(new File("C:\\.........")); 
Process p1= pb.start();

於是,萬事大吉。。。。

Process p1= pb.start();


免責聲明!

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



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