Hallo zusammen!
Ich schreibe derzeit an einem Java-Programm, von dem ich möchte, dass nur eine Instanz auf einem Computer gleichzeitig laufen kann. Dazu verwende ich einen Socket, den ich reserviere und öffne. Die zweite Instanz erkennt den geöffneten Socket und beendet sofort wieder. Mir gefällt dieser Ansatz allerdings nicht besonders -- ich möchte lieber keinen Socket öffnen müssen (schon allein um die Meldung der Windows-Firewall beim ersten Start zu vermeiden). Auch möchten manche User das weniger gern, wenn "unerwünschte" Sockets geöffnet werden.
Eine andere Alternative, die ich versucht habe, ist es, die erste Programminstanz ein File exclusive locken zu lassen, die zweite Instanz könnte das dann nicht mehr und beendet sich wieder. Dies hat unter Windows super funktioniert, allerdings leider unter Linux nicht. Wei es scheint, ist es mit den Standard-Konfigurationen einiger Linux-Distributionen möglich, dass mehrere Instanzen den Lock auf ein File erhalten -- oder habe ich da etwas übersehen?
Kennt einer von euch noch eine andere, elegantere Möglichkeit, dieses Problem zu lösen?
Ich bin für jeden hilfreichen Tipp dankbar
Viele Grüße, Matthias
Ich schreibe derzeit an einem Java-Programm, von dem ich möchte, dass nur eine Instanz auf einem Computer gleichzeitig laufen kann. Dazu verwende ich einen Socket, den ich reserviere und öffne. Die zweite Instanz erkennt den geöffneten Socket und beendet sofort wieder. Mir gefällt dieser Ansatz allerdings nicht besonders -- ich möchte lieber keinen Socket öffnen müssen (schon allein um die Meldung der Windows-Firewall beim ersten Start zu vermeiden). Auch möchten manche User das weniger gern, wenn "unerwünschte" Sockets geöffnet werden.
Eine andere Alternative, die ich versucht habe, ist es, die erste Programminstanz ein File exclusive locken zu lassen, die zweite Instanz könnte das dann nicht mehr und beendet sich wieder. Dies hat unter Windows super funktioniert, allerdings leider unter Linux nicht. Wei es scheint, ist es mit den Standard-Konfigurationen einiger Linux-Distributionen möglich, dass mehrere Instanzen den Lock auf ein File erhalten -- oder habe ich da etwas übersehen?
Kennt einer von euch noch eine andere, elegantere Möglichkeit, dieses Problem zu lösen?
Ich bin für jeden hilfreichen Tipp dankbar
Viele Grüße, Matthias