我正在创建一个小的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中运行也很不错:)
Eclipse Bug #76936.我不会指望他们修复它,并且没有列出解决方法。
您可能很幸运找到了一个可以提供更高级控制台的插件。
确实,您不能使用Backspace \ b删除显示的进度,但是可以通过调用println的循环清除控制台来删除它。当然,此kluge不会清除您的日志文件!
固定,Eclipse火星。
注意,由于Eclipse控制台滞后,我不会用它进行持续更新。
现在他们修复了它,但是默认情况下它是禁用的。您应该通过控制台首选项中的Interpret ASCII control characters
启用它。
在while循环内使用System.out.print(“ \ b”),而不是System.out.print('\ b');