32

私はかなり長い間これのために髪を引っ張ってきました。Java でコンソールをクリアする方法について 1 時間調査しました。

私が見つけたのは、一連の行を印刷するか、これを実行することによる汚いハッキングだけでした

Runtime.getruntime.exec("cls/clear");

しかし、私には何も機能していないようです。CのようにJavaでコンソールをクリアする方法は本当にありませんか(clrscr();)。これを実現できる外部ライブラリはありませんか。

汚いハッキングの代わりに適切な関数、ライブラリなどを使用する前に誰かがこれを行ったことがあるかどうか教えてください。

4

7 に答える 7

26

端末がANSI エスケープ コードをサポートしている場合、これにより画面がクリアされ、カーソルが最初の行、最初の列に移動します。

System.out.print("\033[H\033[2J");
System.out.flush();

これは、ほぼすべての UNIX 端末および端末エミュレーターで機能します。Windowscmd.exeは ANSI エスケープ コードを解釈しません。

于 2012-04-20T06:41:02.083 に答える
3
Runtime.getRuntime().exec("PlatformDepedentCode");

「PlatformDependentCode」をプラットフォームのクリア コンソール コマンドに置き換える必要があります。

このexec()メソッドは、コンソールに入力されたかのように、引数として入力したコマンドを実行します。

Windows では、次のように記述しますRuntime.getRuntime().exec("cls");

于 2012-04-20T06:25:05.603 に答える
0

クリアするようにコンソールに指示する必要があります。

シリアル端末の場合、これは通常、いわゆる「エスケープシーケンス」を介して行われ、特にvt100セットが非常に一般的にサポートされるようになりました(およびその密接なANSI-cousin)。

Windowsは従来、このようなシーケンスを「すぐに使用できる」状態でサポートしていませんでしたが、API呼び出しに依存してこれらのことを実行していました。ただし、DOSベースのバージョンのWindowsの場合は、ANSI.SYSドライバーをインストールしてそのようなサポートを提供できます。

したがって、Windowsを使用している場合は、適切なWindowsAPIを操作する必要があります。標準のJavaランタイムライブラリにそうするためのコードが含まれているとは思いません。

于 2012-04-20T06:37:00.653 に答える
-2

Windows を使用していて、プログラムを実行する前に画面をクリアしたい場合は、.bat ファイルから呼び出すファイルをコンパイルできます。例えば:


cls

java "コンパイルクラスの名前は何でも"


「etc」.batとして保存し、コマンドプロンプトで呼び出すか、ファイルをダブルクリックして実行します

于 2017-04-07T16:45:05.850 に答える