Javaの画面をクリアするためにどのようなコードが使用されているのですか。例えばC++で
system("CLS");
明確な画面を表示するためにJavaで使用されているコード
ありがとうございます。
ここにいくつかの答えがあるが、ここではWindows用の機能しないコードを示しているので、ここに明確化がある。
Runtime.getRuntime().exec("cls");
このコマンドは、2つの理由でできません動作します。
よく知られたコマンドcls
はWindowsのコマンドラインインタプリタに組み込まれているため、cls.exe
から呼び出すことができる標準のWindowsインストールには、cls.com
またはRuntime.exec
という名前の実行可能ファイルはありません。
Runtime.exec
を介して新しいプロセスを起動すると、標準出力は開始Javaプロセスが読み取ることができるパイプにリダイレクトされます。しかし、cls
コマンドの出力がリダイレクトされても、コンソールはクリアされません。
この問題を解決するには、コマンドラインインタプリタ(cmd
)を呼び出して、組み込みコマンドの呼び出しを許可するコマンド(/c cls
)を実行するように指示する必要があります。さらに、inheritIO()
を使用して、その出力チャネルをJavaプロセスの出力チャネルに直接接続する必要があります。これは、Java 7以降で動作します。
import Java.io.IOException;
public class CLS {
public static void main(String... arg) throws IOException, InterruptedException {
new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
}
}
Javaプロセスがコンソールに接続されているとき、すなわち出力のリダイレクトを伴わずにコマンドラインから開始されているときは、コンソールをクリアする。
次のコードを使用してコマンドラインコンソールを消去できます。
public static void clearScreen() {
System.out.print("\033[H\033[2J");
System.out.flush();
}
さらに参照するために訪問しなさい: http://techno-terminal.blogspot.in/2014/12/clear-command-line-console-and-bold.html
これは私がそれを処理する方法です。このメソッドは、Windows OSの場合とLinux/Unix OSの場合(Mac OS Xでも機能することを意味します)で機能します。
public final static void clearConsole()
{
try
{
final String os = System.getProperty("os.name");
if (os.contains("Windows"))
{
Runtime.getRuntime().exec("cls");
}
else
{
Runtime.getRuntime().exec("clear");
}
}
catch (final Exception e)
{
// Handle any exceptions.
}
}
もっとシステムに依存しない方法が欲しいなら、 JLine ライブラリと ConsoleReader.clearScreen() を使うことができます。現在の環境で JLineとANSIがサポートされている かどうかを慎重にチェックすることも、おそらくやる価値があります。
次のようなコードが役に立ちました。
import jline.console.ConsoleReader;
public class JLineTest
{
public static void main(String... args)
throws Exception
{
ConsoleReader r = new ConsoleReader();
while (true)
{
r.println("Good morning");
r.flush();
String input = r.readLine("Prompt>");
if ("clear".equals(input))
r.clearScreen();
else if ("exit".equals(input))
return;
else
System.out.println("You typed '" + input + "'.");
}
}
}
これを実行しているときに、プロンプトで「clear」と入力すると、画面がクリアされます。 Eclipseではなく適切な端末/コンソールから実行してください。
これを取得する方法は、複数行の終わり( "\ n")を印刷して、クリアな画面をシミュレートすることです。最後に明らかに、せいぜいunixシェルでは、前の内容を削除せず、上に移動するだけで、下にスクロールすると前の内容を見ることができます。
これがサンプルコードです。
for (int i = 0; i < 50; ++i) System.out.println();
次のようにして、クラスにメソッドを作成します。[as @ Holger said here ]
public static void clrscr(){
//Clears Screen in Java
try {
if (System.getProperty("os.name").contains("Windows"))
new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
else
Runtime.getRuntime().exec("clear");
} catch (IOException | InterruptedException ex) {}
}
これは少なくともWindowsで動作します。私はこれまでLinuxをチェックしていません。誰かがLinuxでそれをチェックするなら、それがうまくいくかどうか私に知らせてください。
別の方法として、このコードをclrscr()
に書くことです。
for(int i = 0; i < 80*300; i++) // Default Height of cmd is 300 and Default width is 80
System.out.print("\b"); // Prints a backspace
この方法を使用することはお勧めしません。
以下を試してください。
System.out.print("\033\143");
これはLinux環境ではうまくいきます
Runtime.getRuntime()。exec(cls)が私のXPラップトップで機能しませんでした。これはしました -
for(int clear = 0; clear < 1000; clear++)
{
System.out.println("\b") ;
}
これが役に立つことを願っています
for (int i = 0; i < 50; ++i) System.out.println();
でcls
のエミュレーションを使うことができます。
あなたがBluejや他の似たようなソフトウェアでこれをしているならこれはうまくいくでしょう。
System.out.print('\u000C');