So löschen Sie die Konsole in Java
- Verwendung von ANSI-Escape-Codes zum Löschen der Konsole in Java
-
Verwendung von
ProcessBuilder
zum Löschen der Konsole in Java
In diesem Tutorial werden wir uns die zwei Möglichkeiten ansehen, die zur Bereinigung des Konsolenbildschirms in Java verwendet werden können. Wir werden uns Beispiele ansehen, um zu lernen, wie man in Java klare Bildschirmbefehle zur Laufzeit ausführt.
Verwendung von ANSI-Escape-Codes zum Löschen der Konsole in Java
Wir können spezielle Codes, so genannte ANSI-Escape-Code-Sequenzen, verwenden, um die Cursorpositionen zu ändern oder andere Farben anzuzeigen. Diese Sequenzen können als Befehle interpretiert werden, die aus einer Kombination von Bytes und Zeichen bestehen.
Um die Konsole in Java zu löschen, werden wir den Escape-Code \033[H\033[2J
verwenden. Dieser seltsame Zeichensatz stellt den Befehl zum Löschen der Konsole dar. Um ihn besser zu verstehen, können wir ihn aufschlüsseln.
Die ersten vier Zeichen \033
bedeuten ESC
oder das Escape-Zeichen. Wenn wir 033
mit [H
kombinieren, können wir den Cursor an eine bestimmte Stelle bewegen. Das letzte Zeichen, 033[2J
, reinigt den gesamten Bildschirm.
Wir können uns das folgende Beispiel ansehen, in dem diese Escape-Codes verwendet werden. Wir benutzen auch System.out.flush()
, das speziell dafür benutzt wird, die verbleibenden Bytes bei Verwendung von System.out.print()
zu löschen, so dass nichts auf dem Konsolenbildschirm ausgelassen wird.
Beispiel:
public class ClearConsoleScreen {
public static void main(String[] args) {
System.out.print("Everything on the console will cleared");
System.out.print("\033[H\033[2J");
System.out.flush();
}
}
Verwendung von ProcessBuilder
zum Löschen der Konsole in Java
In dieser Methode werden wir einen ProcessBuilder
verwenden, der eine Klasse ist, die hauptsächlich dazu dient, einen Prozess zu starten. Mit den Befehlen, die die Konsole bereinigen, können wir einen Prozess erstellen.
ProcessBuilder()
nimmt die auszuführenden Befehle und seine Argumente auf. Das Problem bei diesem Ansatz ist, dass verschiedene Betriebssysteme unterschiedliche Befehle haben können, um den Konsolenbildschirm zu säubern. Aus diesem Grund überprüfen wir in unserem Beispiel das aktuelle Betriebssystem.
Zuletzt verwenden wir die Klasse Process
, um einen neuen Prozess mit inheritIO
zu starten, um die Standard-Ein- und Ausgabekanäle auf Javas I/O-Kanal zu setzen.
public class ClearScreen {
public static void main(String[] args) {
System.out.println("Hello World");
ClearConsole();
}
public static void ClearConsole() {
try {
String operatingSystem = System.getProperty("os.name") // Check the current operating system
if (operatingSystem.contains("Windows")) {
ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "cls");
Process startProcess = pb.inheritIO.start();
startProcess.waitFor();
}
else {
ProcessBuilder pb = new ProcessBuilder("clear");
Process startProcess = pb.inheritIO.start();
startProcess.waitFor();
}
} catch (Exception e) {
System.out.println(e);
}
}
}
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn