Estoy creando una pequeña aplicación Java que debería tener un indicador de progreso con porcentajes. En cada bucle, utiliza retroceso \b
para eliminar el progreso mostrado antes de mostrar el siguiente porcentaje.
Aquí tienes un ejemplo simplificado:
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!");
}
Esto funciona perfectamente en el símbolo del sistema, pero el carácter de retroceso no se reconoce en la consola de Eclipse (compilación de Galileo 20090920-1017). En cambio, muestra un cuadrado vacío que denota un personaje desconocido. Ver captura de pantalla:
¿Cómo hago para que Eclipse "muestre" el retroceso correctamente? Es decir, deja que elimine el carácter anterior.
En realidad, esto no es sorprendente, ya que solo se ejecutará en la consola de comandos, pero sería bueno que también funcione en Eclipse :)
Respuestas:
Error de Eclipse # 76936. No contaría con ellos para solucionarlo, y no se enumeran soluciones alternativas.
Es posible que tenga suerte al encontrar un complemento que contribuya con una consola más avanzada.
fuente
Bueno, es cierto que no puede usar retroceso \ b para eliminar el progreso mostrado, pero puede eliminarlo borrando la consola con un bucle que llame a println. ¡Por supuesto que este kluge no borrará su archivo de registro!
fuente
Fijo, Eclipse Mars.
Tenga en cuenta que no lo usaría para realizar actualizaciones constantes, ya que la consola eclipse se retrasa.
fuente
System.out.println("x\by")
).Ahora lo arreglaron, pero está deshabilitado por defecto. Debe habilitarlo a través
Interpret ASCII control characters
de las preferencias de la consola.fuente
use: System.out.print ("\ b") dentro del ciclo while, en lugar de System.out.print ('\ b');
fuente