Frage

Ich habe eine Situation, wo ich brauche, Befehle zu einer laufenden Java-Anwendung zu senden, jetzt i TCP / IP-Socket bin mit Befehlen an die Anwendung senden Internet-Explorer-Kontextmenüpunkt. Aber sobald die Anwendung gestartet beschweren Virenscannern, dass die Anwendung gestartet hat, obwohl ich nur für lokale Verbindungen zu hören bin. Ich denke, das für die Nutzer verwirrend sein kann. Ich suche auf andere Wege der Kommunikation ohne av Scanner nerven?

War es hilfreich?

Lösung

Dazu sind Sie am besten aus einer Datei basiert FIFO-Warteschlange. Oder mit Hilfe von Java Native Access / Java Native Interface zu einem NamedPipe oder Shared Memory zu schreiben. Wenn Sie den JNA / JNI Weg zu gehen, könnten Sie ein Named Ereignis .

Aber es gibt wohl keine Möglichkeit, zu tun, was Sie wollen, mit jeder Menge Effizienz, ohne die JNA / JNI Weg zu gehen.

Andere Tipps

Sie können mit Java Management Extentions (JMX) Methoden in einem laufenden Prozess durch eine einfache Web-Schnittstelle zu belichten.

Sockel ziemlich die traditionelle Art und Weise sind IPC zu tun, aber wenn man wirklich wollen, sie zu vermeiden, können Sie könnte der Lage sein, mit einer Vermeidung des Problems zu kommen, die lokale Verwendung Dateisystem. Sie würden nicht Standard-Datei verwenden möchten liest / schreibt, da Sie am ehesten effektiv wollen würde eine Warteschlange im Dateisystem implementieren.

Wenn I geht IPC durch das Dateisystem zu implementieren, würde ich wahrscheinlich SQLite verwenden ( den THREAD wenn so zusammengestellt werden kann) und für jeden Hörer einen Tisch. Ich würde wahrscheinlich eine einspaltige Tabelle verwenden, um die Nachricht einzufügen, und der Hörer würde nur die Zeile ziehen Sie mit der niedrigsten rowid , dann löschen die Reihe.

Aber mein Ansatz ist nicht auf alle Java-spezifisch, so könnte es bessere Möglichkeiten zu tun, dass die Verwendung von Java (wie @ darthcoder Antwort).

Viele Leute benutzen so etwas wie JMS in diesem Szenario.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top