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

问题描述 投票:78回答:5

我正在创建一个小的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)中无法识别退格字符。相反,它显示一个表示未知字符的空正方形。查看屏幕截图:

“替代文字”

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

这实际上没有显示效果,因为它只能在命令控制台中运行,但是也可以使其在Eclipse中运行也很不错:)

java eclipse backspace
5个回答
57
投票

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

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


8
投票

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


3
投票

固定,Eclipse火星。

注意,由于Eclipse控制台滞后,我不会用它进行持续更新。


0
投票

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


-3
投票

在while循环内使用System.out.print(“ \ b”),而不是System.out.print('\ b');

© www.soinside.com 2019 - 2024. All rights reserved.