今天遇到了一個很奇葩的問題,終於解決了,記一下,以做備忘。
前提條件:工程路徑在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();
