我正在编写一个小实用程序,它显示一个运行/停止服务的列表。它读取控制台输出并在进一步处理后使用此输出。 该程序只是挂在br.readLine()可能是因为无法在流中找到终止字符。以下是代码的摘录。
try {
String mainFile="";
String temp="";
Process p = Runtime
.getRuntime()
.exec(System.getenv("windir")
+ "\\system32\\WindowsPowerShell\\v1.0\\"
+ "powershell.exe Get-service | Format-List name , status , displayName ");
p.waitFor();
InputStream i = p.getInputStream();
InputStreamReader isr = new InputStreamReader(i);
BufferedReader br = new BufferedReader(isr);
while ((temp = br.readLine())!=null) {
mainFile = mainFile + temp + "\n";
}
} catch (Exception err) {
err.printStackTrace();
}
System.out.println(mainFile);
不幸的是,由于这个问题,最后的syso语句永远不会打印。有什么指针可以解决这个问题吗?