1. ホーム
  2. java

[解決済み] Eclipse のコンソールで backspace \b を使うには?

2023-08-11 11:12:48

質問

小さな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 build 20090920-1017)ではバックスペース文字が認識されません。代わりに、未知の文字を示す空の四角形が表示されます。スクリーンショットをご覧ください。

どうすればEclipseにバックスペースを正しく表示させることができますか?つまり、前の文字を削除させるのです。

これはコマンドコンソールで実行されるだけなので、実際には何の障害にもなりませんが、Eclipseでもそれが動作するようになるのはちょうどいいでしょう :)

解決方法は?

Eclipse のバグ #76936。 修正するのはあてにならないし、回避策も記載されていない。

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