web-dev-qa-db-ja.com

Java --Eclipseでコンソールをクリアする方法

Eclipseでいくつかのステートメントが実行/印刷された後にコンソールをクリアする方法。私はflush()を使用しましたが、機能しませんでした。サンプルコードを投稿するだけです。

System.out.println("execute ");
System.out.println("these set of lines ");
System.out.println("first");

Thread.sleep(2000); // just to see the printed statements in the console
System.out.flush(); // it is not clearing the above statements
3
Chandra Shekhar

System.outStreamであり、ストリームをクリアすることは意味がありません。

EclipseのConsoleは、そのストリームをレンダリングするビューであり、より豊富な機能(ストリームのコンテンツの可視バッファーをクリアする機能を含む)を備えていますが、 Eclipseプラグインを作成している場合のアクセス。一般Javaコードには、Eclipseのコンソールビューに関する知識がありません。

いくつかのハック を介して適度に役立つ何かを達成できるかもしれませんが、それに依存することはお勧めしません。とにかく、本番コードでSystem.outを使用することは強くお勧めしません。代わりにロガー( slf4jlogback など)を使用してください。そして、あなたが本当に達成しようとしていることを考えてください。

4
E-Riz

コンソールによって異なりますが、ANSIエスケープシーケンスをサポートしている場合は、これを試してください。

final static String ESC = "\033[";
System.out.print(ESC + "2J"); 

また、複数の行末( "\ n")を印刷して、クリアな画面をシミュレートすることもできます。最後に、クリア、せいぜいunixシェルでは、前のコンテンツを削除せず、上に移動するだけで、下にスクロールすると前のコンテンツを見ることができます。

サンプルコードは次のとおりです。

for (int i = 0; i < 50; ++i) System.out.println();

3番目のオプション:

import Java.io.IOException;

public class CLS {
    public static void main(String... arg) throws IOException, InterruptedException {
        new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
    }
}
2
user6159261

Eclipseコンソールはサポートしていませんclear screenおよびその他のANSIエスケープシーケンスの解釈そのために必要になるでしょう。また、 コンソールでのANSIエスケープ Eclipseプラグインは画面のクリアをサポートしていません。

2019年12月18日にリリースされる次のEclipse IDE 2019-12(4.14)では、バックスラッシュ\b)およびキャリッジリターン\r)文字は設定で有効にできます( Eclipse 4.14-新しくて注目に値する-コンソールビューでの制御文字の解釈 を参照):

enter image description here

1
howlger