另一個問題很快就會出現,但這必須是一個非常明顯的錯誤,我沒有看到。我已經編寫了一些代碼來運行下面的批處理文件,但是我收到一條錯誤消息,說它找不到該文件,但我可以向您保證該文件存在於目錄中!ProcessBuilder無法找到文件?
public class Pull {
public void pullData() throws IOException {
ProcessBuilder pb = new ProcessBuilder("adb.bat");
File f = new File("C:\\");
pb.directory(f);
Process p = pb.start();
}
public static void main(String[] args) throws IOException {
Pull pull = new Pull();
pull.pullData();
}
}
,這裏是錯誤消息
Exception in thread "main" java.io.IOException: Cannot run program "adb.bat" (in directory "C:\"): CreateProcess error=2, The system cannot find the file specified
所以,adb.bat是在C:\,對不對?嘗試將其放置在項目文件夾 – keyser 2012-03-23 22:37:32
中或其副本不在其中。我正確使用processbuilder嗎? – Rookie 2012-03-23 22:47:10
您是否嘗試將批處理文件的內容作爲參數傳入到您的'ProcessBuilder'中?例如,如果「adb.bat」執行了類似「java -version」的操作,你是否嘗試過使用新的ProcessBuilder(「java」,「 - server」)?我想知道,如果Java正在嘗試像處理可執行文件一樣對待adb.bat,即使它實際上只是一個基於文本的腳本。 – CodeBlind 2012-03-23 22:58:56