这是我的代码:
import java.io.*;
public class PingTest
{
public static void main (String [] args) throws IOException, InterruptedException
{
Runtime.getRuntime().exec(new String[]
{"cmd","/k","start","cmd","/c","ping localhost"});
}
}
它像我想要的那样ping localhost,但它不会保持打开状态。一旦完成,它立即关闭。我该怎么做才能解决这个问题?
答案 0 :(得分:4)
因为你基本上是在执行
cmd /k start cmd /c ping localhost
它完全应该运行它,运行start
运行cmd
,ping
因/c
标志而在cmd /k start cmd /k ping localhost
完成后终止。
如果您希望具有ping结果的窗口保持打开状态,则需要执行
cmd /c start cmd /k ping localhost
或
cmd
(第一个{{1}}上的标志是什么并不重要,因为它没有打开新窗口。)
答案 1 :(得分:3)
一个便宜的解决方法是在main()的末尾请求输入。
public static void main (String [] args) throws IOException, InterruptedException
{
...
System.out.println("Press return to continue.");
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
in.readLine();
}
答案 2 :(得分:0)
您可能想要使用内置命令pause
。为此你可以扩展你的命令:
public static void main (String [] args) throws IOException, InterruptedException
{
Runtime.getRuntime().exec(new String[]
{"cmd", "/k", "start", "cmd", "/c", "\"ping localhost & pause\""});
}