【问题标题】:java thread stops execution when clicking in terminal在终端中单击时java线程停止执行
【发布时间】:2016-07-17 18:48:07
【问题描述】:

我有一个简单的 java 控制台应用程序,它打印出一个字符串,就像有人在输入它一样。它工作正常,除了当我单击控制台窗口时。我单击的单元格变为白色,线程停止执行。 Image of said occurrence

这是我的代码示例:

public class Main {

    public static void main(String[] args) {
        String text = "Welcome to the terminal.";
        boolean newLine = true;

        new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < text.length(); i++) {
                    System.out.print(text.substring(i, i + 1));
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                if (newLine) {
                    System.out.println("");
                }
            }
        }.run();
    }
}

Windows 10 可能与此有关。我不知道。我试过删除 Runnable 部分,但它做同样的事情。谢谢你的帮助。

【问题讨论】:

  • 我真的不明白你想用 runnable 完成什么,但这似乎是一个你不负责的错误。您是否尝试过下载最新版本的 Java?
  • 当您在 Windows 控制台中单击时,它会进入不同的模式,使用 esc 您可以再次进入另一个模式。我也认识到了这个问题,但它是按设计的。当控制台处于此模式时,线程将停止。
  • 我已经下载了最新版本的java。 runnable 用于在这个项目中运行的其他东西,这些东西很快就被丢弃了。那是我的代码的精简版,但是如果您只运行该代码,问题仍然存在。我可能必须添加一些愚蠢的标志才能使其运行而不会出现该问题。
  • @itzJanuary 我猜你是在开玩笑说要下载最新版本的 Java
  • 有没有办法禁用这个模式?我做了几个这样的简单c#程序,没有出现问题。

标签: java windows multithreading


【解决方案1】:

这与 Java 无关。您已进入快速编辑模式。按 ENTER 离开它。
Here 是如何完全禁用它。

【讨论】:

  • 谢谢!我总是惊讶于这个由聪明人组成的社区对我的问题的反应速度之快。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-22
  • 1970-01-01
  • 2016-06-30
  • 1970-01-01
  • 2011-01-24
  • 2012-03-13
相关资源
最近更新 更多