Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Doppeltes Ausführen verhindern

  1. #1
    Registrierter Benutzer
    Registriert seit
    19.09.2004
    Beiträge
    31

    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

  2. #2
    Registrierter Benutzer Avatar von Caveman
    Registriert seit
    03.11.2005
    Ort
    Geilsheim
    Beiträge
    308
    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)

  3. #3
    Registrierter Benutzer
    Registriert seit
    19.09.2004
    Beiträge
    31
    Hallo,

    kan ich davon ausgehen, dass die Datei gelöscht wird, wenn das Programm beendet wurde oder sogar gekilled?

  4. #4
    Registrierter Benutzer Avatar von Caveman
    Registriert seit
    03.11.2005
    Ort
    Geilsheim
    Beiträge
    308
    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.

  5. #5
    Registrierter Benutzer Avatar von Boron
    Registriert seit
    07.01.2002
    Beiträge
    827
    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)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •