web-dev-qa-db-ja.com

Eclipseのコンソールでバックスペース\ bを機能させる方法は?

私は少しの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!");
}

これはコマンドプロンプトでは完全に機能しますが、バックスペース文字はEclipseのコンソールでは認識されません(Galileoビルド20090920-1017)。代わりに、未知の文字を示す空の四角が表示されます。スクリーンショットを見る:

alt text

Eclipseでバックスペースを適切に「表示」するにはどうすればよいですか?つまり前の文字を削除します。

これはコマンドコンソールで実行されるだけなので、実際にはショートッパーではありませんが、Eclipseでも同様に動作するのは良いことです。

75
BalusC

Eclipse Bug#76936。 修正を期待していません。回避策は記載されていません。

より高度なコンソールを提供するプラグインを見つけることができるかもしれません。

57
Mark Peters

バックスペース\ bを使用して表示された進行状況を削除することはできませんが、printlnを呼び出すループでコンソールをクリアすることで削除できます。もちろん、このklugeはログファイルをクリアしません!

8
EMurnane

修正済み、Eclipse Mars。

Eclipseコンソールが遅れるので、私はそれを定期的な更新に使用しないことに注意してください。

3
gagarwa