可能是一个误导性的标题,但感谢其他问题的人,我的程序有些工作,但现在不知道该怎么做。
这是我运行命令提示符命令并返回输出的方法
public static String cmdExec(String cmdLine) {
String line;
String output = "";
try {
Process p = Runtime.getRuntime().exec(cmdLine);
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
output += (line + '\n');
}
input.close();
}
catch (Exception ex) {
ex.printStackTrace();
}
return output;
}
它按照我希望的方式工作,但现在当我运行此方法时,它将等到一切都完成,然后返回输出,这不是我想要的。
我制作了一个使用 cmdExec 方法的 ping 泛洪方法。这是我如何调用 cmdExec()
String[] input = ipTextField.getText().split(":");
if(input.length == 2) {
System.out.println(cmdExec("cmd /c ping " + input[0] + " -t -n " + Integer.parseInt(input[1])));
因此,例如,如果我在程序中输入“127.0.0.1:3”,它将向 localhost 发送 3 个数据包。现在的问题是,不是将我从命令提示符 1 逐个打印出来的行作为输出,而是等到所有 3 个数据包都发送完毕,然后打印输出的完整输出。
如果我在命令提示符下键入“ping 127.0.0.1 -t -n 3”,它将逐个打印回复,而不是一次打印,那么我将如何在我的程序中做同样的事情呢?