我在尋找解決方案在stackoverflow和谷歌這個問題,但我還沒有發現任何可以幫助我解決它的固體。如何在執行運行時命令後停止java掛起
我試圖用java的powershell命令執行bat文件,然後在StringBuilder中存儲響應,但應用程序只是掛起。這是我做了什麼
------批處理文件------------
Powershell /C "Get-WMIObject -class Win32_ComputerSystem | select username"
------ Java文件----- --------
import java.io.InputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.util.*;
//import org.apache.commons.exec.CommandLine;
//import org.apache.commons.exec.DefaultExecutor;
public class Test
{
public static void main(String[] args)
{
try {
String command = "cmd /C .\\scripts\\Get-Username.bat";
System.out.println(executeCommand(command).toString());
}catch(Exception e) {
e.printStackTrace();
}
}
public static StringBuilder executeCommand(String command)
{
String line = null;
StringBuilder responseBuffer = new StringBuilder();
try {
Process process = Runtime.getRuntime().exec(command);
BufferedReader inStreamReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
while((line = inStreamReader.readLine()) != null){
//System.out.println(line);
responseBuffer.append(line + "\n");
}
process.getOutputStream().close();
}catch(IOException ex) {
ex.printStackTrace();
}
return responseBuffer;
}
}
預先感謝您
它掛在哪裏?你有沒有在IDE調試器中查看它? – 2014-08-31 07:49:48
@JimGarrison我不使用IDE。我使用ant和文本編輯器作爲我的構建工具。因爲我的筆記本電腦很古老,所以它沒有足夠的內存來正確運行IDE。 – user3860307 2014-08-31 07:54:58
@JimGarrson糾正我,如果我錯了,據我所知,似乎不去過去「while」聲明 – user3860307 2014-08-31 07:56:54