在这行“bufferedReader.readLine(); ”之后,下面的代码没有完全执行。当我执行系统命令时,该程序工作正常 提及远程 PC 的 IP 地址。
class Test
{
public static void main(String arg[])
{
Process p;
Runtime runTime;
String process = null;
try {
runTime = Runtime.getRuntime();
p = runTime.exec("sc \\xx.xx.xx.xx query gpsvc"); // For Windows
InputStream inputStream = p.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line = bufferedReader.readLine();
process = "&";
while (line != null) {
line = bufferedReader.readLine();
process += line + "&";
}
StringTokenizer st = new StringTokenizer(proc, "&");
System.out.println("token size "+st.countTokens());
while (st.hasMoreTokens()) {
String testData = st.nextToken();
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
}
} catch (IOException e) {
System.out.println("Exception arise during the read Processes");
e.printStackTrace();
}
}
}
最佳答案
检查 exec
方法中的命令
p = runTime.exec("sc\\xx.xx.xx.xx 查询 gpsvc");
此处的语法错误,如果您从命令提示符执行此命令,系统将提示您以下问题。
Would you like to see help for the QUERY and QUERYEX commands? [ y | n ]:
只有输入 y 或 n ,程序才会返回。由于程序没有终止,您将无法读取控制台输出,这就是您的程序卡在 String line = bufferedReader.readLine();
关于java - BufferedReader 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13604734/