如何让退格\ b在Eclipse的控制台中工作?

时间:2010-06-22 18:27:26

标签: java eclipse backspace

我正在创建一个小应用程序,它应该有一个百分比的进度指示器。在每个循环中,它使用退格\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正确“显示”退格?即让它删除前一个字符。

这实际上没有showstopper,因为它只是在命令控制台中运行,但是它也很适合在Eclipse中工作:)

5 个答案:

答案 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;);