问题
I\'m creating a little Java application which should have a progress indicator with percentages. In every loop it uses backspace \\b
to remove the displayed progress before displaying the next percentage.
Here\'s a simplified example:
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!\");
}
This works perfectly in command prompt, but the backspace character isn\'t recognized in Eclipse\'s console (Galileo build 20090920-1017). It instead displays an empty square denoting an unknown character. See screenshot:
How do I get Eclipse to \"display\" the backspace properly? I.e. let it remove the previous character.
This is actually no showstopper since it will just be run in command console, but it would be just nice to get it to work in Eclipse as well :)
回答1:
Eclipse Bug #76936. I wouldn't count on them to fix it, and there are no workarounds listed.
You might have luck finding a plugin that contributes a more advanced console.
回答2:
Well, it's true you can't use backspace \b to remove the displayed progress, but you could remove it by clearing the console with a loop calling println. Of course this kluge won't clear your log file!
回答3:
Fixed, Eclipse Mars.
Note, I wouldn't use it to do constant updating, as the eclipse console lags.
回答4:
use: System.out.print("\b ") inside the while loop, instead of System.out.print('\b');
来源:https://stackoverflow.com/questions/3095986/how-to-get-backspace-b-to-work-in-eclipses-console