【发布时间】: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