Java & C++ kombinieren?

Status
Nicht offen für weitere Antworten.

derHai

Mitglied
Hallo,
ich bräuchte Informationen darüber, ob man Java mit C++ kombinieren kann... und falls ja, wie es geht.
Ich bin für alles dankbar, was ihr mir sagen könnt.

mfg Merlin
 
Mit Hilfe der JNI ist das kein Problem.

Du schreibst in Java eine Klasse mit dem Keyword nativ:
Code:
public class Test{
  public native int sum( double[] values );
}

Transformierst diese Klasse in eine Header-Datei (z.B. der JBuilder kann das),

JBuilder X hat gesagt.:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class forum_Test */

#ifndef _Included_forum_Test
#define _Included_forum_Test
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: forum_Test
* Method: sum
* Signature: ([D)I
*/
JNIEXPORT jint JNICALL Java_forum_Test_sum
(JNIEnv *, jobject, jdoubleArray);

#ifdef __cplusplus
}
#endif
#endif

implementierst das ganze in c++, und schon kannst du die Methode "sum", geschrieben in c++, aus Java aufrufen.

(Du musst eine DLL machen, und mit System.loadLibrary laden).

In die umgekehrte Richtung geht es sicher auch irgendwie, aber damit hab ich mich noch nie beschäftigt.


Mehr dazu findst du in der API unter JNI, oder google mal ein bisschen.

mfg Beni
 
Vielen Dank erstmal ,aber ich bin mir nicht ganz sicher, ob ich dich verstehe, also:
Also:
1. Ich schreibe den Methoden-Kopf mit der native deklaration in Java
2. Anschließend kompiliere ich das und mache daraus eine Header-Datei (C++-Header?)?
3. Anschließend schreibe ich die Methode in C++[mit dem selben Namen] und implementiere dabei den Header????
4. Dann mache ich aus dem in nr. 3 beschriebenem eine DLL und lade diese mit System.loadLibrary in Java?
5. Falls ich dich richtig verstanden habe, dann müsste ich die Methode jetzt ausführen können.


Falls nicht, wäre ich dir sehr dankbar, wenn du mir detailliertere Informationen geben könntest.
 
Lies bitte zuerst das Tutorial. Das erklärt ein bisschen ausführlicher, als ich das kann.

Ich bin nicht so der c++ -Könner, also erwarte bitte nicht zuviel.

1. genau
2. c/c++ Header (diese Sprachen sind ja irgendwie vermischt...) machen. Siehe Tutorial
3. Nicht genau der gleiche Name, da gibt es noch Zusätze Java_KlassenPfad_MethodenName, siehe Tutorial. In der Header oben wurde der Name ja auch ein bisschen abgeändert. Und verwende ein Tool dazu, ist einfacher :wink:
4. ja
5. solltest du jetzt können.

Nicht gerade die beste Hilfe, aber ein Einstieg :roll:
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben