1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

[Java] nur eine Anwendung gleichzeitig

    • Frage
  • Loopo
  • 18. November 2006 um 13:15
  • Unerledigt
  • Loopo
    3
    Loopo
    Mitglied
    Punkte
    70
    Beiträge
    8
    • 18. November 2006 um 13:15
    • #1

    Bietet Java Mechanismen, um zu verhindern, dass eine Anwendung mehrmals gleichzeitig ausgeführt werden kann?

    |_00P0

  • hal
    32
    hal
    Mitglied
    Reaktionen
    52
    Punkte
    11.122
    Beiträge
    2.208
    • 18. November 2006 um 13:30
    • #2

    Keine automatischen, nachdem das ja durchaus im Sinne des Erfinders sein könnte (zB bei Serveranwendungen).

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Lord Binary
    18
    Lord Binary
    Mitglied
    Reaktionen
    11
    Punkte
    3.301
    Beiträge
    647
    • 18. November 2006 um 13:47
    • #3

    Da gibt's ein paar Möglichkeiten ...
    Spontan fällt mir ein:

    1)
    Einen (dummy) Port belegen.
    "Failed" die Socketcreation, ist es mit hoher Wahrscheinlichkeit eine zweite Instanz. (oder ein anderes Programm benutzt diesen Port, daher ist diese Mehtode eher hässlich)

    2) Filelocking -> (nio klassen)
    Ein Dummyfile kreieren und "sperren".
    Details siehe:
    hier

    Code
    // achtung: untested + exception handling selbst schreiben ;-)  
    path="whatever";
    FileInputStream f =  FileInputSteam(new File(path+"lock")); 
    FileLock theLock = f.getChannel().tryLock(); 
    if (theLock==null) 
    {
      // file kann nicht gelockt werden -> 2++te Instanz 
    }
    else
    {
      // ok, erster start
    }
    Alles anzeigen


    Trading for a living [equities,futures,forex]

  • Vevusio
    6
    Vevusio
    Mitglied
    Reaktionen
    1
    Punkte
    371
    Beiträge
    71
    • 18. November 2006 um 14:13
    • #4

    allerdings gibt es keine mechanismen die sowas automatisch erlauben weil man es einfach nie braucht... mir fällt zumindest kein fall ein wo es sinnvoll wäre dass man eine applikation schreibt die nur ein mal geöffnet werden kann

    na gut einer fällt mir doch ein... sagen wir du willst zb für counter strike ne GUI schreiben zum editieren der cs config file.... -.-
    das programm öffnet und liest die file automatisch ein um sie dann zu editieren und es hätte keinen sinn es ein zweites mal zu starten

    allerdings brauchst du dann keine dummy file/port weil du ja schon überprüfen kannst ob die config file geöffnet ist

    aber wann schreibt man schon so applikationen die sich auf nu reine file/port/was auch immer beschränken also, wäre interessant zu wissen wieso du denkst dass du sowas brauchst

    [FONT=Arial, Helvetica, sans-serif](\__/) [/FONT]
    [FONT=Arial, Helvetica, sans-serif] (='.'=) [/FONT]This is Bunny. Copy Bunny into your signature to help
    [FONT=Arial, Helvetica, sans-serif](")_(")[/FONT] him on his way to world domination.

  • J.Petso
    15
    J.Petso
    Mitglied
    Reaktionen
    14
    Punkte
    2.384
    Beiträge
    457
    • 20. November 2006 um 10:11
    • #5
    Zitat von Vevusio

    allerdings gibt es keine mechanismen die sowas automatisch erlauben weil man es einfach nie braucht... mir fällt zumindest kein fall ein wo es sinnvoll wäre dass man eine applikation schreibt die nur ein mal geöffnet werden kann


    - Ein Browser, der statt einem neuen Fenster ein neues Tab im schon vorhandenen Fenster aufmachen soll
    - Ein CD-Brennprogramm, das aus ersichtlichen Gründen nicht öfter als einmal laufen soll, statt dem Öffnen einer neuen Instanz wird die vorhandene fokussiert
    - Ein Kalenderprogramm, das sowohl standalone als auch als Komponente einer PIM-Applikation gestartet werden kann, und aber nicht doppelt laufen soll, stattdessen soll der jeweils laufende Part aktiviert werden
    - Ein System-Tray-Icon, bei dem es keinen Sinn macht, es zweimal offen zu haben
    - usw. usf.

    Ja, es gibt Anwendungsfälle. Ja, es gibt Frameworks, die diese Funktionalität zur Verfügung stellen (ich kenne KDE mit KUniqueApplication). Wie man das in Java am besten macht, kann ich aber auch nicht sagen.

    "Egbert B. Gebstadter is the Egbert B. Gebstadter of indirect self-reference." - Egbert B. Gebstadter

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung