Mehrmaliges Ausführen verhindern

celph_titled

Erfahrenes Mitglied
Hallo,

gibt es in Java eine Möglichkeit zu verhindern, dass ein Programm mehrmals ausgeführt wird, und stattdessen das zuerst ausgeführte benachrichtigt wird?
Ich stell mir das so ähnlich vor wie bei Audio Playern, wenn nicht für jede Datei ein neuer Player geöffnet wird, sondern die bei dem Ersten an die Playlist angehängt werden.
 
Moin!
Was das mehrmalige ausführen betrifft, könntest du auf eine Datei eine Sperre legen (siehe Filelock http://www.galileocomputing.de/openbook/javainsel6/javainsel_12_001.htm)
Wenn die nächste Instanz deiner Anwendung gestartet wird, überprüfst du erstmal, ob nicht schon eine Sperre auf der Datei liegt.
Andere Möglichkeit wäre, einen Socket auf einen Port horchen zu lassen. Wenn du deine Anwendung ein zweites Mal starten willst, wird das Fehler geben..

*grüssle*
MeinerEiner
 
Du könntest das ganze über die Win32 Api lösen.

Das mit der Dateisperre ist auch keine schlechte Idee. Ich mach es meistens so das ich mir in einem Thread einen serversocket offen halte und beim Programmstart versuche ich eine Verbindung aufzubauen den rest kannst du dir ja denken´.

Brauchst du halt keine Datei obwohl ich die Idee natürlich einfacher zu realisieren finde.
 
Wenn du zwischen den 2 Instanzen noch Parameter übergeben willst könntest du auch über RMI bzw. CORBA nachdenken, dann ist die Parameterübergabe vielleicht etwas einfacher.
 
Zurück