我想以編程方式運行.exe程序(如果它尚未運行)。 目前我使用進程生成器從java啓動.bat。批處理文件在檢查它是否正在運行後運行.exe。 問題是,java將不會繼續,直到用戶關閉.exe程序。我該如何解決這個問題?從java運行一個.exe文件並繼續運行
Java代碼:
try {
ProcessBuilder builder = new ProcessBuilder("open.bat");
final Process process = builder.start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
while ((br.readLine()) != null) {
}
System.out.println("command line terminated");
} catch (Exception err) {
err.printStackTrace();
System.out.println("error ");
}
批號:(open.bat)
tasklist | find "illustrator.exe"
if errorlevel 1 start "" "C:\Program Files (x86)\Adobe\Adobe Illustrator CS6\Support Files\Contents\Windows\illustrator.exe"
創建一個新的主題? – 2014-11-07 00:30:11
將'while((br.readLine())!= null){'移動到另一個線程,讓它靜靜地消耗結果,這將允許剩下的代碼,記住,IO往往是阻塞的,所以循環;) – MadProgrammer 2014-11-07 00:30:27
你得到「命令行終止」的輸出嗎?破壞你的進程 – 2014-11-07 00:34:19