Angenommen, Sie sind die Back-End-Komponente auf derselben Maschine ist, dass Sie eine Zwischenschicht von den anderen als beschrieben
verwenden könnte
All dies erfordert, dass das C++ - Backend in einer DLL verfügbar ist und stellt normalerweise Java-Proxies für C-Funktionen und manchmal c + bereit + Klassen. Es gibt eine Lernkurve für alle diese und einige arbeiten, um den Proxy zu ermöglichen.
würde Ein weiterer Ansatz, einen C++ Prozess zu verwenden und mit diesem kommuniziert entweder
- Befehlszeile
- stdin/stdout
Wenn Sie über ein Netzwerk zur Unterstützung der Kommunikation
- Buchsen
- CORBA
- WebServices
- Thrift
diese Diese haben auch eine Lernkurve und einige Rüstkosten
Von der Befehlszeile oder stdin/stdout ist wahrscheinlich die schnellste mit der zum Laufen zu bringen minimaler Aufwand und Wissen. Es skaliert jedoch nicht gut zu großen Schnittstellen, da Sie die Eingabe und Ausgabe jeder Nachricht als Text codieren müssen. Für die Befehlszeilenmethode führen Sie den C++ - Prozess unter Verwendung von Befehlszeilenschaltern für die Optionen aus. Die Ergebnisse werden entweder gelesen aus dem Prozess Standard out oder seinen Exit-Code.
Für stdin/stdout starten Sie den Prozess jede Anfrage wird an stdin des Prozesses gesendet und die Ergebnisse werden von stdout gelesen.
Beachten Sie, dass JNA nur für Bibliotheken mit einer C-API funktioniert. –