Bildschirm in Konsole löschen?

  • Themenstarter Themenstarter schnorpel
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
S

schnorpel

Gast
Ich möchte ein Programm für Konsole schreiben. Dabei möchte ich ab und den Bildschirm leeren. Wie mach ich sowas?
 
wenn dein programm plattformunabhängig bleiben soll, ist das nicht möglich, da die Betriebssysteme verschiedene Befehle dafür benutzen.

wenn es nur für windows sein soll, könntest du Runtime.exec("cls") benutzen.
 
Ich bräuchte auch den cls Befehl, aber ich kann es einfach nicht starten und die API hilft mir auch nicht wirklich weiter.

ich versuche zur Zeit folgenden Quellcode
try
{
Runtime.getRuntime().exec("cls");
}
catch (IOException e)
{
System.err.println(e.toString());
}

Aber es kommt folgende Fehlermeldung

java.io.IOException: CreateProcess: cls error=2

Ich würde mich über hilfe sehr freuen
 
und zwar könntet ihr abfragen ob ihr euch in windows befindet und dann entsprechend die befehle für die anderen os raussuchen und erweitern:

Code:
String sys;
sys=System.getProperty("os.name");
//so nun kommt die entsprechende abhandlung
if(sys.indexOf("Windows")!=-1){
  //windows anhandlung
}
//weitere betriebssystemabfragen

wie das genau geht weis ich nich, da ich mir meist mit drag and drop ne gui erstell (jbuilder9).
und da ists ja einfach die textarea neu zu setzen.

ne alternative wäre, genug leere zeilen auszugeben, bis der bildschirm leer ist.
 
Die Lösungen die Angeboten wurden, haben mir leider bis jetzt nicht wirklich helfen.
Ich arbeite mit der Konsole und möchte den Befehl cls aufrufen um die aktive Konsole zu löschen.
Mit dem folgenden Quellcode funktioniert es leider nicht.
Code:
import java.io.*;

class Test
{
	public static void main(String[] args) 
	{
	String pfad = "C:\\WINNT\\SYSTEM32\\cmd.exe";
	
	String sys; 
	sys = System.getProperty("os.name"); 
	//so nun kommt die entsprechende abhandlung 
	if(sys.indexOf("Windows 2000")!= -1)
		{ 
		System.out.println(sys);
		try 
			{ 
			Runtime clean = Runtime.getRuntime(); 
			clean.exec("cls");
			
			} 
		catch (IOException e) 
			{ 
			System.err.println(e.toString()); 
			}		
		} 
	}
}

ich bekommen immer die Fehlermeldung

java.io.IOException: CreateProcess: cls error=2

Es wäre schön wenn mir jemand helfen kann.
 
Natürlich geht das nicht.
Unter Windows NT/2000/XP führt der Aufruf zu einer Exception, weil die Befehle wie cls und start lediglich von der cmd.exe emuliert werden.
Der einfache Aufruf von cls würde aller höchstens nur unter Windows 95/98/ME funzen.

Wenn überhaupt geht es nur, wenn man cls wie folgt aufruft:
cmd.exe /c cls
Allerdings kann es dazu führen, das eine neue Konsole geöffnet wird, und nur in dieser dann der Text gelöscht wird.
Wenn überhaupt ist es nur über ANSI Sequencen möglich den Bildschirm zu löschen, und dürfte auch nicht einfach zu realisieren sein.

Um es kurz zu machen: Ich habe auch keine Ahnung, wie das geht. Ich vermute ganz stark: Es geht gar nicht.
Ich würde eher empfehlen mit GUIs zu arbeiten, Konsolenprogramme sind eh nicht sonderlich beliebt unter Windows.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben