【问题标题】:How do you keep the console from closing after the program is done?程序完成后如何防止控制台关闭?
【发布时间】:2016-01-31 04:00:24
【问题描述】:

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

【问题讨论】:

  • 我正在使用 IntelliJ IDEA,但我会将应用程序编译为 jar 文件
  • main()的最后一个右大括号上设置断点?
  • 它不工作。我需要代码
  • 好的,您是否在 IntelliJ 中运行该类并希望在 IntelliJ 控制台上获得一些输出?或者您正在使用 Windows 命令提示符运行 jar?

标签: java jar console sleep pause


【解决方案1】:

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

public static void main (String[] args) throws IOException {
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    in.readLine();
}

【讨论】:

    【解决方案2】:

    我发现的最简单的方法:

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

    【讨论】:

      【解决方案3】:

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

      • 您可以在 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();
      }
      

      在对象上调用等待:

      public static void main(String[] args)throws Exception {
          Object o = new Object();
          synchronized (o) {
              o.wait();
          }
      }
      

      【讨论】:

        【解决方案4】:

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

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

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

        编辑:如果你想构建 Scanner,你可以这样做:

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

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

        【讨论】:

        • Scanner 构造函数中放入了什么字符串?
        • 我有代码:Scanner pause = new Scanner(""); pause.nextLine();但我在线程“main”java.util.NoSuchElementException 中出现崩溃异常:找不到行
        猜你喜欢
        • 2010-12-24
        • 1970-01-01
        • 2011-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多