Frage

Ich habe ein Java -Programm, das hauptsächlich GUI ist, und es zeigt Daten, die in eine XML -Datei aus einem C ++ - Befehlszeilen -Tool geschrieben wurden. Jetzt möchte ich dem Java -Programm eine Schaltfläche hinzufügen, um die Daten zu aktualisieren. Dies bedeutet, dass mein Programm die C ++ - Funktionalität aufrufen muss.

Ist der beste Weg, das Programm von Java durch einen Systemanruf zu rufen? Das C ++ - Programm wird für Mac OS und Windows kompiliert und sollte immer im selben Verzeichnis wie das Java -Programm sein.

Ich möchte eine ausführbare Datei generieren. Kann das C -Programm im Glas gespeichert und aus meinem Programm gerufen werden?

War es hilfreich?

Lösung

Unter der Annahme, dass keine bessere Kommunikationsmethode verfügbar ist (Seife, Eis, Steckdosen usw.), würde ich die ausführbare Datei verwenden Runtime.exec(). JNI kann verwendet werden, um direkt mit der Schnittstelle zu versehen, aber ich würde es nicht empfehlen. Nein, Sie können keine ausführbare Datei in das Glas legen. Nun, Sie können, aber Sie können es nicht ausführen, da die Shell nicht weiß, wie man sie ausführt.

Andere Tipps

Wenn Sie Zugriff auf den Code haben und eine "interaktive" Erfahrung mit dem externen Programm (z. B. Anruf machen, Ergebnisse abrufen, zusätzliche Anrufe tätigen), untersuchen & Verknüpfung von JNI -Saft mit Ihrer C- oder C ++ - App mit.

Sehen:

http://en.wikipedia.org/wiki/java_native_interface

http://www.acm.org/crossroads/xrds4-2/jni.html

Wenn Sie wirklich nur eine Lösung "LOVEL -App und Ergebnisse erhalten" benötigen, lesen Sie RunTime.exec (), mit dem Sie ein externes Programm starten und deren Ausgabe erfassen können.

Sehen:http://www.javarld.com/javarld/jw-12-2000/jw-1229-traps.html?page=1

http://www.rgagnon.com/javadetails/java-0014.html

Möglicherweise möchten Sie sich auch das ansehen Java Native Access API (JNA).

Um Ihre letzte Frage zu beantworten, können Sie keine ausführbare Datei aus Ihrem Glas ausführen.

Aber du kann Speichern Sie es in Ihrem Glas und extrahieren Sie es vor dem Ausführen in ein temporäres Verzeichnis/in ein Datei (prüfen Sie es beim ersten Mal auf das Vorhandensein und extrahieren Sie gegebenenfalls extrahieren). Dies vereinfacht Ihre Verteilung etwas, da Sie nur das Glas zum Verteilen haben und sicherstellen, dass Sie eine ausführbare Datei ausführen, die Ihrem Java -Code entspricht.

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