-
Doppeltes Ausführen verhindern
Hallo,
ich habe ein Java-Anwendung (Swing) und möchte, dass diese nur einmal ausgeführt wird und kein zweites Mal gestartet werden kann.
Hat jemand diesbezüglich Erfahrung?
Thx a lot,
Vitus
-
Registrierter Benutzer
Hallo Vitus,
ich habe gerade ein ähliches Problem mit einem C-Programm bzw. mit einem Perl-Programm (mit einem von beiden).
Es gibt hier zwei Ansätze (die ich in Betracht ziehe).
- Der eine funktioniert mit Semaphore:
Gibt's natürlich auch für Java - schau hierzu einfach mal in die API unter "Class Semaphore"
(Hab hier im Forum leider nichts weltbewegendes hierzu gefunden)
- Ich werde wahrscheinlich in Richtung des zweiten Ansatzes gehen:
Da ich auch auf eine Datei zugreife, werde ich diese zu Beginn mit dem ersten Aufruf der ersten Anwendung für weitere Zugriffe sperren. Startet nun eine weitere Anwendung des Programms, würde es natürlich gern auf die selbe Datei zugreifen, da dies dann nicht möglich ist, wird jeder weitere Programmaufruf wieder abgebrochen, solange die erste Anwendung noch läuft.
schönen Gruß
Caveman
Geändert von Caveman (06-12-2005 um 11:26 Uhr)
-
Hallo,
kan ich davon ausgehen, dass die Datei gelöscht wird, wenn das Programm beendet wurde oder sogar gekilled?
-
Registrierter Benutzer
Bei mir wird sie sicher nicht gelöscht, da es eine log-Datei ist.
Sie wird nur für weitere Lese-/Schreib-Zugriffe gesperrt. Diese Sperre wird spätestens beim Beenden der ersten Anwendung aufgehoben.
Möchte man die Datei nach dem Beenden nicht mehr haben, so muss man sie explizit löschen.
-
Registrierter Benutzer
Oder du schaust dir mal an , was mit "Netzwerkprogrammierung" möglich ist.
Ich denke da an so etwas:
Dein Programm öffnet einen Socket auf einem von dir bestimmten Port (sagt man das so?).
Wenn das Programm ein zweites mal gestartet wird, wird der selbe Vorgang wiederholt und schlägt fehl, weil die erste Instanz des Programms ja zuerst da war.
Und schon kannst du mit einer netten Meldung das Programm beenden.
Das mit der Datei ist zu unsicher.
Gruß Boron (der sich oft wegen mieser Rechtschreibung anderer die Augen reiben muss)
LINUX IS LIKE AN INDIAN TENT: NO GATES, NO WINDOWS AND AN APACHE INSIDE!
Hardware Monitoring unter Linux -> http://santafu.sourceforge.net (Temperaturen, Lüfterdrehzahlen und Spannungen)
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen