Hallo zusammen,
vielleicht kann mir einer hierbei helfen: Ich möchte ein Programm als Dienst laufen lassen. Beendigng über Kommandozeile ist somit nicht mögl. da es keine Kommandozeile mehr gibt. Also muss ich sonstwie das geordnete Runterfahren sicherstellen. Ein SutdownHook dachte ich mir und habe das auch ausprobiert. Leider wird der nicht ausgeführt. Hier das Codstückchen:
Die Klasse FileSystemHandling implementiert runnable und wird auch sauber ausgeführt. Nur nach dem Schließen der Kommandozeile wird der ShutdownHook nicht mehr ausgeführt. Ich habe das mangels Implementierung einer Beenden-Funktion einfach getestet, indem ich das Kommandozeilenfenster geschlossen habe. Müsste eigentlich dann trotzdem ausgeführt werden, oder?
Weiß jemand, warum das nicht geht?
Grüße
Albrecht
vielleicht kann mir einer hierbei helfen: Ich möchte ein Programm als Dienst laufen lassen. Beendigng über Kommandozeile ist somit nicht mögl. da es keine Kommandozeile mehr gibt. Also muss ich sonstwie das geordnete Runterfahren sicherstellen. Ein SutdownHook dachte ich mir und habe das auch ausprobiert. Leider wird der nicht ausgeführt. Hier das Codstückchen:
Code:
public class Main_nav_raster_ff {
public Main_nav_raster_ff() {
//Hier wird das nachfolgende Programm angestoßen in einem neuen Thread
Thread t;
m_objFileSystemHandling = new FileSystemHandling();
t=new Thread(m_objFileSystemHandling);
t.setDaemon(true);
t.run();
//Der ShutdownHook sollte beim beenden ausgeführt werden
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
log.SetLogmessage("Meine Zeit läuft jetzt ab!", enumLoglevel.SEVERE);
}
});
}
}
Weiß jemand, warum das nicht geht?
Grüße
Albrecht