Hallo,
ich habe ein Batch-File über das ich meine Application in Windows starte d.h. es öffnet sich ein CMD-Fenster in dem dann die Konsoleausgaben erfolgen. Das funktioniet auch problemlos.
Nun möchte ich aber, dass das CMD-Fenster automatisch geschlossen wird
wenn die Java Anwendung beendet wird. Irgendwie funktioniert dies aber nicht richtig. Die letzten Befehle (goto ende) im Batch-File werden scheinbar nicht mehr durchlaufen !?
So sieht mein Batch-File bisher aus:
cls
rem This batch file starts Java-Application
rem This batch file is written and tested under Windows NT
rem Improvements to this file are welcome
if „%CLASSPATH%“ == „“ goto noclasspath
rem else
set ORIGCLASSPATH=%CLASSPATH%
set CLASSPATH=%CLASSPATH%;MEIN.jar;
rem Append your DB-driver classes to the CLASSPATH here
noclasspath
set ORIGCLASSPATH=
set CLASSPATH=%CLASSPATH%;MAIN.jar;
rem Append your DB-driver classes to the CLASSPATH here
Nun möchte ich aber, dass das CMD-Fenster automatisch
geschlossen wird
wenn die Java Anwendung beendet wird. Irgendwie funktioniert
dies aber nicht richtig. Die letzten Befehle (goto ende) im
Batch-File werden scheinbar nicht mehr durchlaufen !?
class WL extends WindowAdapter
{
public void windowClosing( WindowEvent e )
{
event.getWindow().dispose();
}
public void windowClosed( WindowEvent e )
{
// Das Fenster ist geschlossen, und jetzt können wir hier
// weitermachen, etwa mit System.exit(), wenn alles
// vorbei sein soll.
}
}
oder eine der anderen Konstanten (je nach Bedarfsfall).
Dann brauchst du da nicht einen extra Adapter oder Listener ranhängen, der dann sowieso System.exit(0) aufrufen würde.
Das CMD-Fenster als solches kannst du auch direkt unterdrücken, indem du die Applikation folgendermaßen aus deiner Batchdatei heraus startest:
start javaw MeinJavaProgramm
Wenn du nun jedoch etwas via System.err oder System.out schreiben würdest, dann ist dies nicht zu sehen, denn dies landet ja automatisch auf der Konsole. Hierzu würde ich dir ein entsprechendes Log-Framework, z.B. log4j oder das JDK-Log empfehlen. Da kannst du dann z.B. in eine Datei loggen.