Mit Java Konsolenfenster leeren?
Der Titel sagt schon fast alles. Mein Java Programm wird über Bash (Für Windows) ausgeführt. Ich möchte die Konsole mit einem Java befehl leeren, wie bei Batch der cls befehl, oder bei Linux der clear Befehl. Danke im Vorraus!
2 Antworten
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
Leider scrollt das nur runter. Ich habe die Lösung jezt schon, aber trozdem danke
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.