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

2022-08-31 12:17:00

我正在创建一个小的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的控制台中无法识别退格字符(伽利略内部版本20090920-1017)。相反,它显示一个表示未知字符的空正方形。看截图:

alt text

如何让 Eclipse 正确“显示”退格空间?即让它删除前一个字符。

这实际上不是showtopper,因为它只会在命令控制台中运行,但是让它在Eclipse中工作也会很好:)


答案 1

Eclipse Bug #76936.我不会指望他们来修复它,也没有列出任何解决方法。

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


答案 2

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


推荐