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
System.out
はStream
であり、ストリームをクリアすることは意味がありません。
EclipseのConsoleは、そのストリームをレンダリングするビューであり、より豊富な機能(ストリームのコンテンツの可視バッファーをクリアする機能を含む)を備えていますが、 Eclipseプラグインを作成している場合のアクセス。一般Javaコードには、Eclipseのコンソールビューに関する知識がありません。
いくつかのハック を介して適度に役立つ何かを達成できるかもしれませんが、それに依存することはお勧めしません。とにかく、本番コードでSystem.out
を使用することは強くお勧めしません。代わりにロガー( slf4j や logback など)を使用してください。そして、あなたが本当に達成しようとしていることを考えてください。
コンソールによって異なりますが、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();
}
}
Eclipseコンソールはサポートしていませんclear screenおよびその他のANSIエスケープシーケンスの解釈そのために必要になるでしょう。また、 コンソールでのANSIエスケープ Eclipseプラグインは画面のクリアをサポートしていません。
2019年12月18日にリリースされる次のEclipse IDE 2019-12(4.14)では、バックスラッシュ( \b
)およびキャリッジリターン(\r
)文字は設定で有効にできます( Eclipse 4.14-新しくて注目に値する-コンソールビューでの制御文字の解釈 を参照):