Best Practice Application extern nur einmal startbar

FXL

Mitglied
Guten Abend zusammen,

folgende Problemstellung:

Meine Anwendung soll wenn sie bereits läuft kein zweites mal gestartet werden können, sondern auf die aktuelle Programminstanz weiterleiten.

Hintegrund:
Meine Anwendung bekommt i.d.R. eine Datei übergebe (als Argument). Diese neue Datei soll in der aktuellen Instanz geladen werden.

Desweitern wäre es notwendig, zwischen Programmversionen zu unterscheiden. Also läuft Version 2014 - so kann Version 2013 als zweite Instanz gestartet werden.


Intersannt wäre für mich ersteinmal
- Wie kann ich feststellen ob meine Anwendung in der jvm läuft?
- Wie kann ich meiner Anwendung, nachdem die main-Funktion durchlaufen werden, nochmals eine Anweisung von außen mitgeben?
- Gibt es evtl. schon ein entsprechende API? ;)


Gruß
 

MR_UNIX

Bekanntes Mitglied
Zu Punkt 1 würde mir spontan die Lösung einfallen, dass man ...
  • ... einen Registry-Schlüssel beim Programmstart erstellt und bei Programmende löscht, daran kann man prüfen, ob es aktiv ist
  • ... eine Lock-Datei erstellt, also einfach eine Datei, die nach dem Programmende wieder gelöscht wird. Datei vorhanden -> Programm läuft
Mit beiden Methoden kann man auch die Versionsnummer der Instanz hinterlegen und in der zweiten Instanz dann checken, ob die Nummer übereinstimmt (Instanz nicht weiter ausführen) oder ob es sich um verschiedene Versionen handelt (Instanz weiterhin ausführen).

Punkt 2 verstehe ich nicht so wirklich. Wenn die main()-Methode durchlaufen wurde, ist das Programm ja i.d.R. beendet - außer man hat Daemon-Threads, was aber eher ein Ausnahmefall ist.
Wenn du meinst, dass die übergebene Datei an die "gültige" Instanz weitergegeben werden soll, würde mir spontan mal die Kommunikation über Pipes zwischen Prozessen einfallen. Ob und wie das genau in Java realisiert werden kann, weiß ich nicht, ist aber auf jeden Fall mal ein Google-Wort :)

Zu Punkt 3 kann ich leider nichts sagen, ich kenne keine derartigen APIs, habe mich damit aber auch noch nicht beschäftigt, daher heißt das nicht, dass es keine gibt.
 

FXL

Mitglied
Hi,

danke für deine Antwort.

Soweit kann ich folgen, das schwierigste wird wohl die "Kommunikation zwischen den Prozessen" sein.
Die Idee mit den Pipes oder Sockets finde ich gut.

Vielleicht fällt mit dem Thema auch der "Lock" weg - z.B.

-Anfrage an Server Socket schicken - Adresse pro Version unterschiedlich
-Keine Antwort--> keine Instanz läuft
-Antwort --> Anfrage schicken: Datei öffnen --> Programminstanz schließen

Gruß
 

MR_UNIX

Bekanntes Mitglied
ServerSockets wären zwar eine Möglichkeit aber für diesen Anwendungsfall meiner Meinung nach überdimensioniert. Was du suchst sind eher lokale Sockets (unter UNIX "Domain Socket"; unter Windows vermutlich unter ähnlichem Namen auffindbar) - also vorgegebene Sockets die meines Wissens nach über das Betriebssystem für die Inter-Process-Communication genutzt werden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Integration pay Pale in eine JavaFx Desktop Application Allgemeine Java-Themen 1
B JAX - RS.... Multiple parameter application/x-www-form-urlencoded.... Allgemeine Java-Themen 6
M this application requires a java runtime environment 1.8.0 Allgemeine Java-Themen 2
Tommy135 Input/Output Application aus Java package starten Allgemeine Java-Themen 2
P Am Application Server - Selbe files aber trotzdem CNF Allgemeine Java-Themen 2
J Application mit PLugin erweitern Allgemeine Java-Themen 2
A JWS application - log4j wie configurieren Allgemeine Java-Themen 1
T Tabletkamera per Java Application ansteuern Allgemeine Java-Themen 1
T Erste Schritte FAIL - Deployed application at context path / but context failed to start Allgemeine Java-Themen 1
I JRE mit Application ausliefern Allgemeine Java-Themen 12
C Can't start application since jvm.dll is not installed Allgemeine Java-Themen 1
D Best Practice Java Application Server , Docker oder was? Allgemeine Java-Themen 15
B Exception in Application init method Allgemeine Java-Themen 5
RalleYTN REST API ResponseType application/pdf lesen Allgemeine Java-Themen 0
C Windows RCP Application unter Linux bauen lassen Allgemeine Java-Themen 3
C Unterschiedliches Verhalten Editor und deployte Application Allgemeine Java-Themen 3
N Input/Output SEO-autoTest Application Allgemeine Java-Themen 4
B A newer version of Java is needed to view the application. Allgemeine Java-Themen 17
E Application -> Applet Allgemeine Java-Themen 9
J Application Server Allgemeine Java-Themen 2
T Java Application zu Applet Allgemeine Java-Themen 4
C Java Application und OpenOffice Allgemeine Java-Themen 5
V plugin.jar in application aus jar Allgemeine Java-Themen 2
Fadi Java Application mit Plugnis erweiteren Allgemeine Java-Themen 4
J Java Application auf 2 Monitore Allgemeine Java-Themen 2
G java application stub / fehler Allgemeine Java-Themen 2
M IRC Chat - Klasse oder Application gesucht Allgemeine Java-Themen 9
T Executable Java-Application erstellen Allgemeine Java-Themen 2
T PIMP my Application Allgemeine Java-Themen 19
R Drag und Drop von externen Files geht nur als Application Allgemeine Java-Themen 2
P Java - Application auf Debian System zum laufen bringen Allgemeine Java-Themen 11
P java application in das rechtsklick menü im explorer adden? Allgemeine Java-Themen 21
N Datei mit Java-Application öffenen Allgemeine Java-Themen 5
sambalmueslie "Selbstlaufende" Application Allgemeine Java-Themen 2
S HTML Seitenaufruf aus einer Java Application Allgemeine Java-Themen 5
S Java Application Installieren - von CD Autostarten Allgemeine Java-Themen 7
H Application Shut Down. Allgemeine Java-Themen 15
T Java Application Server + Datenbank von CD Allgemeine Java-Themen 8
juppi Java-plug-in mit Application ansteuern Allgemeine Java-Themen 2
D Application einmalig exklusiv starten Allgemeine Java-Themen 8
M von der application zur einfachen java-anwendung Allgemeine Java-Themen 4
Joker4632 Methoden Befehl an bereits extern geöffnete Programm-spezifische Konsole senden Allgemeine Java-Themen 1
K Auf Dateiverzeichnis extern zugreifen (evtl über XML??) Allgemeine Java-Themen 22
K Datei aus.jar extern speichern Allgemeine Java-Themen 10
G Variablen Variable extern speichern - wie? Allgemeine Java-Themen 9
C Mausklicks zählen (extern) Allgemeine Java-Themen 6
Quaxli Uhrzeit von extern Allgemeine Java-Themen 2
P Sandbox für extern geladene Klassen Allgemeine Java-Themen 2
D Word, Excel oder sonstige Dateien extern ausführen Allgemeine Java-Themen 9
J Thread started nur einmal Allgemeine Java-Themen 19
I if-eingaben nur einmal anzeigen Allgemeine Java-Themen 6
D Erste Schritte Arrays vergleichen und die zahlen die nur einmal vorkommen ausgeben Allgemeine Java-Themen 5
K Erste Schritte Start einer JAR Datei 2 Wege aber einmal nicht die volle Funktionlität Allgemeine Java-Themen 20
L Java Slick2D stürzt ab- Zu viel auf einmal? (LinkedList) Allgemeine Java-Themen 7
S Eine Klasse die jeden String nur einmal annimmt Allgemeine Java-Themen 4
R Zufallszahl nur einmal Allgemeine Java-Themen 3
K Mehrere Arrays auf einmal erstellen Allgemeine Java-Themen 2
B Alle Exceptions auf einmal abfangen Allgemeine Java-Themen 4
S mit Class eine Klasse nur einmal instantiieren Allgemeine Java-Themen 4
T KeyListener lässt sich nur einmal drücken Allgemeine Java-Themen 2
C Geschachtelte For-Schleife: Äußere Schleife wird nur einmal durchlaufen!? Allgemeine Java-Themen 3
T RegEx, wieder einmal ... :-( Allgemeine Java-Themen 19
W Wieder einmal: PNG ausdrucken Allgemeine Java-Themen 3
M Anwendung nur einmal starten / Zeichen in String zählen Allgemeine Java-Themen 7
C Anwendung nur einmal Starten Allgemeine Java-Themen 11
D Scrollbalken in meiner JTable auf einmal weg. Allgemeine Java-Themen 2
K Thread für SocketServer nur einmal starten Allgemeine Java-Themen 5
MQue JFrame nur einmal öffnen Allgemeine Java-Themen 3
E Hibernateanwendung auf einmal laaangsam? Allgemeine Java-Themen 3
G Mehrere Bytes auf einmal einlesen Allgemeine Java-Themen 4
B Noch einmal Kopierschutz, sorry Allgemeine Java-Themen 7
S auf einmal gibt es einen fehler. Allgemeine Java-Themen 3
K Oberserver nur einmal verwendbar? Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben