Hallo,
Und anders herum, wenn ich ein "Dienst-Programm"(Server) geschrieben habe, wie kann ich das starten so dass es einfach im Hintergrund läuft,
Indem Du es aus einer laufenden Java-Anwendung heraus startest.
Das will ich ja gerade nicht. Gut, aus von mir aus aus einer Anwendung starten, aber dann als eigenen Prozess, und nicht als Thread der Anwendung. Und das geht glaube ich nicht in Java, oder?
Ja, das geht nicht.
Und der gestartete Prozess dürfte auch kein Kinderprozess des 1. Prozesses sein so dass bei Beendigung des ersten Prozesses auch der 2. Prozess beendet wird.
Dort können Threads als daemon laufen. Nur mit daemons läuft allerdings die JVM nicht. Anders ausgedrückt: Das Beenden des letzten, nicht als daemon laufenden Threads, beendet auch die JVM.
Auf der anderen Seite, wenn ich den Dämon über javaw.exe in der Kommandozeile starte, dann kann ich danach die Kommandozeile schließen, der Dämon läuft dann unabhängig vom Terminal weiter.
Nein. Die JVM beendet sich, wenn _nur_ noch Java-deamons laufen.
http://java.sun.com/j2se/1.3/docs/api/java/lang/Thread.html#setDaemon(boolean)
Am besten wäre natürlich wenn ich sowohl das Start-Programm als auch den Dämon in ein JAR-Archiv bekommen könnte...
Eine einfache Anwendung, die z.B. als Service an einem Port lauscht, kann natürlich im Hintergrund (ohne GUI) laufen. Sie wird aber beendet, wenn sich der Nutzer, welcher sie gestartet hat, abmeldet.
viele Grüße
Axel