Как получить backspace b для работы в консоли Eclipse?


Я создаю небольшое приложение 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!");
}

это отлично работает в командной строке, но символ backspace не распознается в консоли Eclipse (Galileo build 20090920-1017). Вместо этого он отображает пустой квадрат, обозначающий неизвестный символ. Смотрите скриншот:

Как заставить Eclipse правильно "отображать" backspace? Т. е. пусть он удалит предыдущий символ.

это на самом деле не showstopper, так как он будет просто запускаться в командной консоли, но было бы просто приятно заставить его работать и в Eclipse:)

4 71

4 ответа:

Ошибка Затмения #76936. Я бы не рассчитывал на них, чтобы исправить это, и нет обходных путей.

возможно, Вам повезет найти плагин, который вносит более продвинутую консоль.

ну, это правда, что вы не можете использовать backspace \b для удаления отображаемого прогресса, но вы можете удалить его, очистив консоль с помощью цикла вызова println. Конечно, этот kluge не очистит ваш файл журнала!

Исправлено, Затмение Марса.

обратите внимание, я бы не использовал его для постоянного обновления, так как консоль eclipse отстает.

использование: системы.из.печать ("\b") внутри цикла while, а не Системы.из.print ('\b');