2016-07-06 2 views
0

Ist es möglich zu überprüfen, ob eine Java-Anwendung bereits ausgeführt wird, und wenn ja, erhalten Sie eine Instanz davon? Angenommen, ich habe ein Jar, das beim ersten Klick einen Frame öffnet, und jedes Mal danach (bis es geschlossen ist), erhält es den Frame und fügt ein Objekt hinzu. Dies muss auch funktionieren, ohne dass die Hauptanwendung eine close() -Methode hat, so dass die Anwendung wieder funktioniert, wenn sie erneut geöffnet wird, wenn sie nicht mehr reagiert oder mit dem Task-Manager geschlossen wurde.Get-Instanz der gleichen Java-Anwendung, wenn es bereits ausgeführt

+1

Haben Sie die Links im Abschnitt "Verwandte" auf der rechten Seite dieser Seite überprüft? – assylias

+0

Ja, ich habe ein paar Methoden gefunden, die überprüfen können, ob die App bereits läuft. Aber ich frage auch nach 2 zusätzlichen Methoden –

Antwort

1

Java-Anwendungen arbeiten auf verschiedenen Prozess.

So ist es nicht so einfach, zwischen zwei verschiedenen Prozess (bereits laufende Anwendung und die neue) zu interagieren.

Sie können einen Kommunikationsmechanismus zwischen Prozessen finden und verwenden. Typische inter process communications verwenden Sie Dateien oder eine gemeinsame Datenbank.

Sie können die ID des aktuellen Hauptthreads speichern, der Ihre Java App ausführt.

Wenn ein neuer Prozess startet, prüfen Sie, ob eine bereits laufende Anwendung vorhanden ist. Wenn ja, können Sie das gleiche (oder ein neues) Kommunikationssystem zwischen Prozessen verwenden, um Informationen zu senden, die der Hauptprozess aktualisieren sollte. Dann tötet sich der sekundäre Prozess selbst.

Verwandte Themen