3

在 Java 中完成程序后,如何防止控制台关闭?

4

4 回答 4

4

readLine()等到你按下一个键:

public static void main (String[] args) throws IOException {
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    in.readLine();
}
于 2015-11-01T20:26:30.843 回答
3

我发现的最简单的方法:

Scanner scanner = new Scanner(System.in); 
scanner.nextLine();
于 2016-10-08T00:11:01.193 回答
1

有几种方法可以实现这一点。

  • 您可以在main方法结束时请求用户输入。

  • 您可以创建和启动线程。当您的 main 方法完成时,守护线程会自动关闭。然而,非守护线程将使您的应用程序保持活动状态,直到它们完成。

  • 或者只是调用wait一个对象。

不过,我不确定,如果应用程序不再执行任何操作,为什么还要让应用程序保持活动状态。

使用非守护线程:

// example of an application that never closes.
public static void main(String[] args) {
    new Thread(new Runnable() {
        @Override
        public synchronized void run() {
            for(;;)
                try {
                    wait();
                } catch (InterruptedException e) {
                }
        }
    }).run();
}

在对象上调用 wait :

public static void main(String[] args)throws Exception {
    Object o = new Object();
    synchronized (o) {
        o.wait();
    }
}
于 2015-10-30T19:10:42.047 回答
-1

Scanner每次在代码末尾触发空输入都有效,因为扫描仪等待用户按 ENTER。

//to-do your code
Scanner.nextLine();

Shame Java 没有控制台应用程序的内置等待或暂停命令。

编辑:如果你想构建扫描仪,你这样做:

Scanner scanner = new Scanner(System.in); 
scanner.nextLine();

System.in是告诉扫描器使用哪个输入流的参数。

于 2015-10-30T16:43:22.840 回答