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

Bal*_*usC 76 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!");
}
Run Code Online (Sandbox Code Playgroud)

这在命令提示符下完美运行,但Eclipse的控制台无法识别退格符(Galileo build 20090920-1017).它改为显示一个表示未知字符的空方块.看截图:

替代文字

如何让Eclipse正确"显示"退格?即让它删除前一个字符.

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

Mar*_*ers 57

Eclipse Bug#76936. 我不会指望他们修复它,并且没有列出的变通方法.

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

  • 请参阅注释#24 - "......调试团队目前没有时间/资源来处理此问题.**将非常感谢贡献.**" (16认同)
  • 我修复了这个bug,应该是4.5 M4. (14认同)
  • @BryanHunt显然对于为下一版本的Eclipse做什么做出决定并不重要.显然它对你来说也不够重要. (6认同)
  • @PhilippeMarschall我并不是要减少你的努力,但据我所知,它肯定是*不固定的(使用Mars版本.)打印退格字符对我没有影响.**编辑:**看起来这个bug确实已经重新出现,请参阅此答案中链接的错误报告中的最后两个条目. (2认同)

小智 8

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


Пав*_*вел 5

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