Czyszczenie konsoli w Javie

0

Cześć, mam pytanie dotyczące czyszczenia ekranu konsoli w Javie. Szukałem polecenia podobnego do system("CLS"); z C++, które wyczyści konsole. Znalazłem ten temat na stackoverflow:

link ze stackoverflow
Kod tego programu:

import java.io.IOException;

public class CLS {
    public static void main(String... arg) throws IOException, InterruptedException {
        System.out.println("Coś tam"); //dodana jakaś tresc, która powinna zostać wyczyszczona.
        new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
        System.out.println("Coś tam 2");
    }
}

A także TEN film na YT (wygląda nieco inaczej, ale zasada działania jest chyba identyczna.
Kod programu:

import java.io.IOException;

public class test {
    public static void main(String... arg)  {
	
	for(int i=1; i<=10; i++)
		{
			System.out.println(i);
			cls();
		}
        
    }
// code for clear function
public static void cls()
{
	try
	{	
		new ProcessBuilder("cmd","/c","cls").inheritIO().start().waitFor();
	}catch(Exception E)
		{
			System.out.println(E);
		}
}
	
}

Niestety, obydwa programy nie działają, tj. nie czyszczą ekranu z poprzednich instrukcji. Zauważyłem, że gdy z wiersza

new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();

usunę "/c", to w NetBeansie odpala mi się konsola cmd i mogę tam wpisywać różne komendy. Kiedy wywołałem cmd z menu start i wpisałem samą komendę /c to pojawiła się informacja, że nie jest rozpoznawana. I teraz pytanie, czy powyższe programy nie działają dlatego, że nie działa mi na komputerze polecenie /c? Dodam, że ostatnio musiałem coś zrobić w cmd i nie działała komenda touch, której bez problemu używał mój kumpel w domu. Czy jest możliwe, że mam jakiś problem ze sterownikami/systemem na komputerze i nie działają mi niektóre komendy?
Dodam, że sprawdzałem już zmienne środowiskowe i mam tam wpisaną ścieżkę do system32.

0

Przesyłam link do mojego repo gdzie to kiedyś wykorzystałem : https://github.com/DSniatecki/YourVehiclesStorage/blob/master/src/com/DSniatecki/tools/MyView.java]
Działa na różnych systemach :)

0

Nie mogę tego skompilować - pojawia się błąd, że nie znaleziono metody main.

1

Zrób to w ten sposób :

public class CLS {

    public static void main(String[] arg){
        System.out.println("To zniknie");
        clearScreen();
        System.out.println("To zostanie, ale w konsoli, a nie w edytorze");
    }


    public static void clearScreen(){
        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) {
            ex.printStackTrace();
        }



    }
}

Czyszczenie ekranu nie zadziała w edytorze, ale jak odpalisz plik .jar z konsoli to elegancko lata.

1 użytkowników online, w tym zalogowanych: 0, gości: 1