我正在创建一个小应用程序,它应该有一个百分比的进度指示器。在每个循环中,它使用退格\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)。它改为显示一个表示未知字符的空方块。见截图:
如何让Eclipse正确“显示”退格?即让它删除前一个字符。
这实际上没有showstopper,因为它只是在命令控制台中运行,但是它也很适合在Eclipse中工作:)
答案 0 :(得分:55)
Eclipse Bug #76936.我不会指望他们修复它,并且没有列出变通方法。
您可能很幸运找到了一个可以提供更高级控制台的插件。
答案 1 :(得分:8)
嗯,确实你不能使用backspace \ b来删除显示的进度,但你可以通过调用println的循环清除控制台来删除它。当然这个kluge不会清除你的日志文件!
答案 2 :(得分:3)
已修复,Eclipse Mars。
注意,我不会用它来进行持续更新,因为eclipse控制台滞后。
答案 3 :(得分:3)
现在他们已修复它,但默认情况下已禁用。您应该通过控制台偏好设置中的sudo apt-get install postgresql postgresql-contrib -y
启用它。
答案 4 :(得分:-2)
在while循环中使用:System.out.print(&#34; \ b&#34;),而不是System.out.print(&#39; \ b&#39;);