Java 如何使backspace\b在Eclipse';谁的控制台?

Java 如何使backspace\b在Eclipse';谁的控制台?,java,eclipse,backspace,Java,Eclipse,Backspace,我正在创建一个小Java应用程序,它应该有一个带有百分比的进度指示器。在每个循环中,它使用backspace\b删除显示的进度,然后再显示下一个百分比 下面是一个简化的示例: public static void main(String[] args) throws Exception { System.out.print("Progress: "); for (int percentage = 0; percentage < 100; percentage++) {

我正在创建一个小Java应用程序,它应该有一个带有百分比的进度指示器。在每个循环中,它使用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!");
}
publicstaticvoidmain(字符串[]args)引发异常{
系统输出打印(“进度:”);
对于(整数百分比=0;百分比<100;百分比++){
系统输出打印(百分比+“%”);
Thread.sleep(10);//用于“长时间运行任务”的存根。
int length=String.valueOf(percentage).length()+1;
while(长度-->0){
系统输出打印('\b');
}
}
System.out.println(“完成!”);
}
这在命令提示符下非常有效,但在Eclipse的控制台(Galileo build 20090920-1017)中无法识别退格字符。而是显示一个表示未知字符的空正方形。请参见屏幕截图:

如何让Eclipse正确地“显示”退格?即,让它删除上一个字符

这实际上不是showstopper,因为它将在命令控制台中运行,但如果它也能在Eclipse中工作,那就太好了:)

我不会指望他们来修复它,而且没有列出任何解决方法


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

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

修正,月蚀火星


注意,我不会使用它来进行持续更新,因为eclipse控制台会滞后。

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

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

请参阅注释#24-“…调试团队目前没有时间/资源来处理此问题。如有贡献,将不胜感激。”@BryanHunt显然,对于决定下一个Eclipse版本应该做什么的人来说,这并不重要。我修好了程序错误,应该在4.5 M4。@菲利普沙尔我不是有意减少你的辛勤工作,但就我所知,它肯定不是固定的(使用Mars版本)。打印后退字符对我没有影响。编辑:看起来这个bug确实重新出现了,请参阅这个答案中链接的bug报告中的最后两个条目。根据计划,该修复将用于Eclipse 4.6,目标发布日期为2016年6月22日():/我在NetBeans中看到了同样的症状“用…清除控制台”到底是怎么回事?println()无法清除控制台上已打印的行!它可以将已打印的输出向上推,使其脱离控制台的可见区域,从而有效地清除控制台。在Neon.3(
System.out.println(“x\by”)
)中未固定。这在Eclipse IDE for Java Developers版本:2019-12(4.14.0)中起作用。谢谢