jni

Status
Nicht offen für weitere Antworten.

nameac

Bekanntes Mitglied
hey,

ich habe jetzt schon öfters gelesen das jvm auch aus c/c++ aufrubar ist. frage mich ob das stimmt denn bei praktischen bsp. hab ich immer nur den weg gesehen eine dll in javacode einzubinden, in dieser dll kann zwar auf java methoden zugegriffen werden jedoch ist das kein starten der jvm oder gibt es da noch einen anderen weg der gemeint ist? :###
 
A

Anmeldeboykottierer

Gast
Hi,
es stimmt genau so, wie du sagtest, man kann eine JVM aus einer nativen Sprache aufrufen. Sie muss dazu mit C kompatibel sein (was jetzt natürlich unglücklich und falsch ausgedrückt ist, aber ich sage das jetzt so). Jedenfalls geht das mit C, C++ und Delphi ohne Probleme (hab es unter diesen Sprachen schon am Laufen gehabt).

Dazu bietet dir JNI ein Paar Seiten Lektüre:
JNI Invocation

Da und generell auf den zugehörigen Seiten findest du dann alles über JNI. Du erzeugst dir einfach eine Instanz von einer JVM und einem JNIEnvironment und kannst damit (wie gewohnt) alle Funktionen des JNI verwenden.

Gruß Der Anmeldeboykottierer
 

nameac

Bekanntes Mitglied
jo, danke das war genau was ich suchte aber mal noch ne frage ist dieses system schon veraltet weil bei der suche nach büchern ist mir aufgefallen das das schon 98 aktuell war gibt es da mitlerweile etwas vergleichbares das aber neuer ist?
 
A

Anmeldeboykottierer

Gast
Nein.
Ok, ganz so kurz kann ich mich dann doch nicht fassen.
Was dort als Weg beschrieben wird ist eigentlich nur der Weg, wie du eine bestimmte Header Datei nutzt. Ich weiß nicht wie weit es mit deinem C her ist, deswegen kurz die (vermeindlich überflüssige) Erklärung: Es handelt sich um eine Art Schnittstellenbeschreibung.
Die Funktionen hinter dieser Datei sind in einer dyn. Bibliothek vorhanden. Unter Windows würdest du gegen die jvm.dll linken (denke es müsst die jvm.so unter Linux sein).
Diese ist immer so aktuell, wie dein JRE. An die Funktionalität des JNI steht dir dabei voll zur Verfügung. Für dich heißt das also, dass alles was für dieses JRE über das JNI zugänglich ist, auch zur Verfügung steht. Sollte sich zudem noch an der DLL etwas ändern, so bleibt das ja transparent.
Der Weg ist also nicht veraltet.

An sich siehst du das aber auch daran, dass der Link von mir auf eine Seite der Dokumentation des JDK 1.5 zeigt.

Gruß Der Anmeldeboykottierer
 
G

Guest

Gast
???:L Wie hab ich es denn jetzt geschafft zwei Beiträge zu posten?!
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben