web-dev-qa-db-fra.com

Comment faire fonctionner le backspace \ b dans la console d'Eclipse?

Je crée un petit Java application qui devrait avoir un indicateur de progression avec des pourcentages. Dans chaque boucle, il utilise le retour arrière \b pour supprimer la progression affichée avant d'afficher le pourcentage suivant.

Voici un exemple simplifié:

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!");
}

Cela fonctionne parfaitement dans l'invite de commande, mais le caractère de retour arrière n'est pas reconnu dans la console d'Eclipse (version Galileo 20090920-1017). Il affiche à la place un carré vide indiquant un caractère inconnu. Voir capture d'écran:

alt text

Comment puis-je faire en sorte qu'Eclipse "affiche" correctement le retour arrière? C'est à dire. laissez-le supprimer le caractère précédent.

Ce n'est en fait pas un showstopper car il sera juste exécuté dans la console de commande, mais ce serait bien de le faire fonctionner dans Eclipse également :)

75
BalusC

Bogue Eclipse # 76936. Je ne compterais pas sur eux pour le réparer, et il n'y a aucune solution de contournement répertoriée.

Vous pourriez avoir de la chance de trouver un plugin qui contribue à une console plus avancée.

57
Mark Peters

Eh bien, il est vrai que vous ne pouvez pas utiliser le retour arrière\b pour supprimer la progression affichée, mais vous pouvez la supprimer en effaçant la console avec une boucle appelant println. Bien sûr, ce kluge n'effacera pas votre fichier journal!

8
EMurnane

Correction, Eclipse Mars.

Remarque, je ne l'utiliserais pas pour effectuer des mises à jour constantes, car la console Eclipse est en retard.

3
gagarwa