Java-Programm nur einmal starten
Unter bestimmten Umständen kann es gewünscht sein, dass nur eine aktive Instanz eines Programms auf einem Rechner ausführbar ist. Sollte das Programm ein weiteres Mal aufgerufen werden, soll die gerade aktive, unsichtbare Instanz des Programms in den Fokus des Bedieners geholt werden. Es stellt sich also die Frage, wie kann überprüft werden, ob ein Programm schon läuft und dann das zweite Starten verhindert werden.
Im Web sind einige interessante Vorschläge zu finden, die beschreiben, wie man ein Java-Programm so programmiert, dass nur eine aktive Instanz im Arbeitsspeicher zugelassen wird, man also ein Java-Programm nur "einmal" ausführen kann.
Möglichkeiten zur Lösung gibt es. Hier einige Ansätze:
- eine Lock-Datei
- einen Port sperren
- Client/Server-Anwendung
- eine Kombination aus alle dem.
Jede der Lösungen bietet Vorteile, wie auch Nachteile in der Praxis. In unserem Java-Anwendung nur einmal ausführen - Java-Blog-Buch wurden die wichtigsten beschrieben.
Eine bisher nicht besprochene Lösung wird im Folgenden beschrieben. Eine Lösung mit Hilfe der seit dem JDK 1.0 mitgelieferten Java-Bibliothek für verteilte Anwendungen - RMI. Sie besticht durch ihre Einfachheit und einem Maximum an Vorteilen.
Dieser Beitrag wird derzeit noch bearbeitet. Der Text ist deshalb unvollständig und kann Fehler oder ungeprüfte Aussagen enthalten. |