簡體   English   中英

在cmd窗口中啟動進程並獲取輸出

[英]start a process in a cmd window and get output

我想使用Java在CMD窗口中啟動一個過程,而最簡單的方法是通過

Runtime.getRuntime().exec("cmd /c start program.exe")

問題在於,現在我無法從流程中獲取輸入。 我如何從流程中獲取輸出並能夠在單獨的CMD窗口中運行它?

您的問題是start是一個單獨的命令,其目的是啟動一個與調用startcmd不相關的全新進程。 然后執行的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM