82

パーセンテージ付きの進行状況インジケーターが必要な小さな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)。代わりに、不明な文字を示す空の正方形が表示されます。スクリーンショットを参照してください:

代替テキスト

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

これはコマンドコンソールで実行されるだけなので、実際には目を見張るものではありませんが、Eclipseでも機能するようにするといいでしょう:)

4

5 に答える 5

57

Eclipseバグ#76936。 私はそれを修正するためにそれらを当てにするつもりはありません、そしてリストされた回避策はありません。

より高度なコンソールに貢献するプラグインを見つけることができれば幸いです。

于 2010-06-22T18:31:18.000 に答える
8

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

于 2010-06-22T23:18:33.430 に答える
4

現在、彼らはそれを修正しましたが、デフォルトでは無効になっています。Interpret ASCII control charactersコンソール設定で有効にする必要があります。

于 2020-05-10T19:54:35.580 に答える
3

修正、EclipseMars。

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

于 2015-07-25T00:52:18.967 に答える
-4

使用:System.out.print('\ b');の代わりに、whileループ内のSystem.out.print( "\ b")。

于 2016-07-25T21:49:44.117 に答える