Mit Java Konsolenfenster leeren?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Ich habe es kurz einmal ausprobiert:

public class Main {
  public static void main(String[] args) {
    System.out.println("Hello world!");
    System.out.print("\033[H\033[2J");
    System.out.flush();
  }
}

Bei

\033[H\033[2J

handelt es sich um einen ANSI Escape-Code.

Die \033 steht für ESC. ESC [ ist ein Control Sequence Introducer. Kombiniert mit H wird die Cursorposition gesetzt und zwar explizit an den Anfang (linke obere Ecke der Konsole). ESC [J wiederum löscht alles beginnend bei der Cursorposition bis zum Ende des Textdisplays.

Ob es einen Befehl gibt weiß ich nicht. Ich habe es aber mal so gelöst:

import java.util.Scanner;

public class clear {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String command = scanner.next();
        if(command.equalsIgnoreCase("clear")){
            for(int i = 0; i <= 150; i++){
                System.out.println(" ");
            }
            System.out.println("Die Konsole wurde geleert."); 
        }

    }
}

Ich hoffe ich konnte dir helfen.

Die Methode ist zwar nicht so elegant, aber sie erfüllt ihren Zweck.

Die Schleife kannst du auch nur bis 50 hoch zählen lassen, dass sollte reichen :-D

LG Anton

Woher ich das weiß:eigene Erfahrung
regex9  11.04.2020, 21:07

Damit füllst du doch nur 151 Zeilen mit Leerzeichen (die Zeilen sind also nicht einmal leer) und verursachst so, dass der obige Text aus dem aktuellen Scroll-View verschwindet. Scrollt der Nutzer wieder nach oben, kann er den vorherigen Text weiterhin lesen.

0
antxn774  11.04.2020, 21:11
@regex9

Das weiß ich, aber für private Zwecke sollte das eigentlich reichen.

Deine Variante ist natürlich eleganter, aber ich dachte eben es reicht so c:

0
name123454321 
Fragesteller
 12.04.2020, 13:25

Leider scrollt das nur runter. Ich habe die Lösung jezt schon, aber trozdem danke

0