Communication zw. Java und C++ Progr
-
Hallo!
Ich will zwischen einem Java Programm und einem C++ Programm Daten austauschen...zwischen 2 C++ programmen mach ich das meistens mit FileMapping...
wie könnte man das dann zwischen java und c++ am besten machen?bin dankbar über jeden vorschlag!
ciao
-
Vielleicht liege ich damit jetzt daneben, aber schonmal mit dem JNI (Java Native Interface) probiert?
Hier der Link
-
JNI ist sicher nicht die direkte Lösung. Such dir am besten einfach eine IPC Methode, die du direkt in Java unterstützen kannst. Im Zweifelsfall über CORBA.
-
Ne dumme Frage am Rande:
Was ist Filemapping?schreibt da einfach Programm A daten in eine Datei X
und programm B ließt die Daten aus X und schreibt Daten in Datei Y
Programm A ließt wieder aus Datei Y usw.
-
Der einfachste Weg ein Java mit einem C++ Proggi kommunizieren zu lassen is sicher der Weg über Pipes / Redirected stdin/stdout. Du startes in Java einen Prozess und übergibst dabei den Dateinamen des Binaries. Dabei holst du dir gleich einen InputStream und einen OutputStream für diesen Prozess und kannst kommunizieren.
Das C++ Proggi kommt es so vor als ob er die Daten von einem Benutzer bekommen würde, also hat irgendwo ein cin>>string; oder sowas und mit cout<<"asdf"<<endl; schreibt er zurück.
Auf diese Weise findet auch die kommunikation von einer Schachengine zu GUI statt.
-
Jürgonaut schrieb:
Der einfachste Weg ein Java mit einem C++ Proggi kommunizieren zu lassen is sicher der Weg über Pipes / Redirected stdin/stdout. Du startes in Java einen Prozess und übergibst dabei den Dateinamen des Binaries. Dabei holst du dir gleich einen InputStream und einen OutputStream für diesen Prozess und kannst kommunizieren.
Das C++ Proggi kommt es so vor als ob er die Daten von einem Benutzer bekommen würde, also hat irgendwo ein cin>>string; oder sowas und mit cout<<"asdf"<<endl; schreibt er zurück.
Auf diese Weise findet auch die kommunikation von einer Schachengine zu GUI statt.
thx. hast du ein beispiel auf lager? ganz simple halt...zahlen addieren oder so...
bye