[英]start a process in a cmd window and get output
我想使用Java在CMD窗口中啟動一個過程,而最簡單的方法是通過
Runtime.getRuntime().exec("cmd /c start program.exe")
問題在於,現在我無法從流程中獲取輸入。 我如何從流程中獲取輸出並能夠在單獨的CMD窗口中運行它?
您的問題是start
是一個單獨的命令,其目的是啟動一個與調用start
的cmd
不相關的全新進程。 然后執行的start
均不連接到原始cmd
並且Java程序無法訪問該cmd
。
如果您需要訪問子流程的in / out / err流,請不要使用start
。
嗨,兄弟,如果您想打印過程的輸出過程使用此
Process process= Runtime.getRuntime().exec("cmd /c start program.exe");
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = null;
while ((line = br.readLine()) != null) {
line = br.readLine();
System.out.println(line);
}
這樣,您將獲得與cmd輸出完全相同的每個輸出過程。
如果您要處理2個cmd,也許可以用不同的exec進行2個處理
Process process1 = Runtime.getRuntime().exec("cmd /c start program1.exe");
Process process2 = Runtime.getRuntime().exec("cmd /c start program2.exe");
如果要在同一線程下運行,請閱讀有關線程的Java書籍,您可以與線程同時運行它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.