JNI Verständnisprobleme

Kalom

Mitglied
Hallo,

ich beschäftige mich heute schon den ganzen Tag damit, wie man C code in Java einbindet. Oder vllt. besser, wie ich ein C Programm in meinem Java Programm "einbinden" kann.

Irgendwie verstehe ich das alles noch nicht so richtig und komme auch nicht wirklich von der Stelle :-(

Was ich bisher glaube zu wissen:

Ich erstelle eine Java Klasse in diese schreibe ich die Methodenköpfe. Vom Prinzip sieht es also ähnlich aus wie ein Interface. Die Methodenköpfe enthalten "native". Aus dieser Java Klasse erstelle ich dann mit hilfe von "javah" eine header Datei.
Diese datei Binde ich in mein C Code über include ein. Genau wie die jni.h

Nun schreibe ich meinen C Code und erstelle daraus eine Dynamic Libary und diese binde ich dann in mein Projekt ein?!

Irgendwie verwirrt mich das alles ;) !

ich habe mich an diversen Tutorials versucht, leider die meisten ohne ein Ergebnis. Ich bekomme irgendwann immer Meldungen das irgendwas nicht gefunden wurde, oder das <jni.h> nicht da ist oder sonst was :) ! Das ist auf dauer wirklich frustrierend.

Dieses Tut: Beginning JNI with NetBeans IDE and C/C++ Plugin on Linux
habe ich durchgeareitet und es funktioniert auch. Aber da ist wirklich Schritt für Schritt alles erklärt. Ob ich das wirklich verstanden habe weiß ich nicht... .
Ebenfalls wird dort Netbeans verwendet und ich würde eigtl. liebe mit Eclispe arbeiten. Leider schaffe ich es irgendwie nicht das wissen zu transferieren.

Kann mir Jemand helfen und ein wenig Licht ins Dunkel bringen ?! :)

Vielen Dank

Kalom
 

Kalom

Mitglied
Naja die Hauptfrage ist eigtl. wie ich das in Eclispe oder ohne Eclispe und ohne Netbeans umsetzte.
Nachdem erstellen der C datei ist bei mir ende.
Ich verwende g++ als Compiler

Wenn ich die Lib erzeugen möchte:
g++ Helloworld.cpp -o libnativehw.so

bekomme ich z.B. die Fehlermeldung
In file included from HelloWorld.cpp:1:
HelloWorld.h:2 fatal error: jni.h: No such file or directory
compilation terminated.
 

Marco13

Top Contributor
OK, das von Hand zu kompilieren ist schon ein bißchen fummelig. (Nimm doch Maven dafür :lol: (sorry :oops: )). Also, wenn es um erste Tests geht, reicht da vielleicht eine BAT-Datei (oder ein shell-Script, wie es in deiner Welt vermutlich heißt), weil die g++-Zeile etwas länger werden kann. Im speziellen muss da jetzt halt noch das include-Verzeichnis dazu, etwa so (ungestet, ich mach' das normalerweise nicht so)
g++ Helloworld.cpp -I/usr/local/dein/pfad/zum/jdk/include -o libnativehw.so

Spätestens bei 2, 3 includes und lib-Verzeichnissen wird das unübersichtlich, aber kannst ja mal schauen, ob das für den ersten Test so etwa funktioniert.
 

Kalom

Mitglied
Hallo,

Vielen Dank :) es lag wirklich an den Parametern, dass er die jni.h und jni_md.h nicht gefunden hat .
Ich habe die nun in das Verzeichnis kopiert in welcher auch die c Datei liegt und es hat funktioniert :)

Das erstellen der Dynamic Library war aber ein klein wenig tricky :)

Anschließend gab es noch einen Fehler, dass Java über System.load("xxx") die Library nicht laden konnte aber nun Funktioniert alles ohne Probleme.

Danke nochma für den Tipp mit den Shell-Scripten, werde dafür gleich welche anlegen!

Kalom
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L JavaFX - grundlegende Verständnisprobleme Java Basics - Anfänger-Themen 1
D Interface Verständnisprobleme von Interfaces Java Basics - Anfänger-Themen 5
gstarplayer [Verständnisprobleme] Java next(),nextLine,nextInt und parseInt! Java Basics - Anfänger-Themen 22
? Klassen Verständnisprobleme mit Klassen und Metohden Java Basics - Anfänger-Themen 5
? Klassen Verständnisprobleme mit Import Anweisungen Java Basics - Anfänger-Themen 6
J Verständnisprobleme bei Arrays Java Basics - Anfänger-Themen 3
J Erste Schritte türme von hanoi verständnisprobleme Java Basics - Anfänger-Themen 6
S Verständnisprobleme wie Java Programme ablaufen Java Basics - Anfänger-Themen 6
B verständnisprobleme bei Aufgabenstellung Java Basics - Anfänger-Themen 25
M Verständnisprobleme mit Klassennutzung Java Basics - Anfänger-Themen 9
c_sidi90 Hilfe bei GUI Verständnisprobleme Java Basics - Anfänger-Themen 13
A Mal wieder Verständnisprobleme Java Basics - Anfänger-Themen 3
A Code-Verständnisprobleme Java Basics - Anfänger-Themen 10
A Verständnisprobleme eines Lösungscodes Java Basics - Anfänger-Themen 9
B Objektoerientiertes Programmieren, Verständnisprobleme Java Basics - Anfänger-Themen 4
megachucky JDBC-Grundlagen: Verständnisprobleme Java Basics - Anfänger-Themen 31
S Rekursion: Verständnisprobleme Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben