# Java & C++ kombinieren?



## derHai (13. Mrz 2004)

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


----------



## Beni (13. Mrz 2004)

Mit Hilfe der JNI ist das kein Problem.

Du schreibst in Java eine Klasse mit dem Keyword nativ:
	
	
	
	





```
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 */
> 
> ...



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


----------



## derHai (13. Mrz 2004)

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.


----------



## Beni (13. Mrz 2004)

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:


----------



## derHai (14. Mrz 2004)

Danke, ich denke das hilft..., ich werde jetzt mal im Tutorial schmökern :###


----------



## EinGast (15. Mrz 2004)

guckst du hier:
http://www.java-tutor.com/java/articles/27.01.2004.html

kannst du java in c++ wandeln und dann vom prinzip her in c++ weiter-coden...

habs selber net getestet, bin nur vorhin über den link gestolpert...


----------

