2013-02-17 7 views
6

Jak mogę wyczyścić tekst, który zostanie wydrukowany w wierszu polecenia przy użyciu języka Java? Chcę wyczyścić Text1 po wydrukach i nadpisać przy pomocy Text2. Szukam i znajduję ten kod, ale nie działa.Wyczyść tekst wydrukowany w wierszu poleceń przy użyciu Javy

public class className { 

    public static void main(String[] args) throws IOException { 
     System.out.println("Text1"); 
     Runtime.getRuntime().exec("cls"); 
     System.out.println("Text2"); 
    } 
} 
+2

Powinieneś przeczytać ten http://www.javaworld.com/jw-12-2000/jw-1229-traps.html i ten http://alvinalexander.com/java/java-exec-processbuilder- process-1 – duffymo

+2

Nie jest to możliwe. System.out to *** nie *** terminal, to tylko strumień wyjściowy. –

+1

[link] (http://sourceforge.net/projects/javacurses/) –

Odpowiedz

8

Można to zrobić z nadrukiem \b:

System.out.print("Text1"); 
System.out.print("\b\b\b\b\b"); 
System.out.print("  "); 

Należy pamiętać, że to nie będzie działać w Eclipse Console.

+0

Testuję to w netbeans i nie działa Próbuję przetestować w cmd – Ehsan

+0

to nie działa w windows cmd też – Ehsan

+2

Przepraszam, zapomniałem o jednej rzeczy. '\ b' po prostu zwraca kursor o jedno miejsce z powrotem, więc potrzebujesz tylko wydrukować w nim spacje. Testowałem to w Windows cmd i działa. Uwaga Użyłem 'print', a nie' println'! – partlov

0

Możesz po prostu użyć sekwencji ucieczki "\ r" (powrót karetki).

System.out.print("Text1"); 
System.out.print("\rText2"); 

Czy tylko print 'Text2'

0

Spróbuj tego rozwiązania:

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

Używam Windows 8 i roztwór ten pracował dla mnie. Mam nadzieję, że to również ci się przyda. :)

Powiązane problemy