使用Java时如何保持命令提示符处于打开状态?

时间:2013-05-30 20:50:33

标签: java command-line ping

这是我的代码:

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,但它不会保持打开状态。一旦完成,它立即关闭。我该怎么做才能解决这个问题?

3 个答案:

答案 0 :(得分:4)

因为你基本上是在执行

cmd /k start cmd /c ping localhost

它完全应该运行它,运行start运行cmdping/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\""});
}