如何让后退空间 b 在 Eclipse 的控制台中工作?

我正在创建一个小的 Java 应用程序,它应该有一个带有百分比的进度指示器。在每个循环中,它使用退格 \b来删除显示的进度,然后再显示下一个百分比。

这里有一个简单的例子:

public static void main(String[] args) throws Exception {
System.out.print("Progress: ");
for (int percentage = 0; percentage < 100; percentage++) {
System.out.print(percentage + "%");
Thread.sleep(10); // Stub for "long running task".
int length = String.valueOf(percentage).length() + 1;
while (length-- > 0) {
System.out.print('\b');
}
}
System.out.println("finished!");
}

这在命令提示符下完美地工作,但是在 Eclipse 控制台中无法识别退格字符(Galileo build 20090920-1017)。而是显示一个表示未知字符的空正方形。见截图:

alt text

如何让 Eclipse 正确地“显示”后退空间? 例如,让它删除前面的字符。

这实际上不是 showstop,因为它只是在命令控制台中运行,但是如果能让它在 Eclipse 中也能正常工作就更好了:)

68721 次浏览

Eclipse Bug # 76936. 我不指望他们来修复它,而且也没有列出解决方案。

您可能有幸找到一个插件,提供了一个更高级的控制台。

的确,您不能使用退格 b 来删除显示的进度,但是您可以通过使用调用 println 的循环清除控制台来删除它。当然,这个克鲁格不会清除您的日志文件!

修好了,日蚀火星。

注意,我不会使用它来执行常量更新,因为 Eclipse 控制台会延迟。

Use: 在 while 循环中的 System.out.print (“ b”) ,而不是 System.out.print (“ b”) ;

现在他们修复了它,但是默认情况下是禁用的。您应该在控制台首选项中通过 Interpret ASCII control characters启用它。