So löschen Sie die Konsole in Java

Rupam Yadav 12 Oktober 2023
  1. Verwendung von ANSI-Escape-Codes zum Löschen der Konsole in Java
  2. Verwendung von ProcessBuilder zum Löschen der Konsole in Java
So löschen Sie die 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 Yadav avatar Rupam Yadav avatar

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

Verwandter Artikel - Java Console