T
tobi_84
Gast
hallo!
ich versuche gerade ein einfaches helloworld-Programm das in visual c++ geschrieben ist mit dem JNI verfügbar zu machen.Visual c++ erstellt mir dabei die dll(werkstatt.dll) die ich in java einbinde.
Bekomme allerdings immer den folgenden Fehler:
exception in thread "main" java.lang.NoClassDefFoundError: und
Ich versteh schon allein nicht was das "und" in der Fehlermeldung soll???
bin folgendermaßen vorgegangen:
1.)java klasse "schnittstelle.java" geschrieben
hab die kompiliert mit javac(ausgabe:schnittstelle.class) und mit javah -jni in c-kompatible headerdatei übersetzt(ausgabe:schnittstelle.h).die ich dann in mein vc++ projekt eingebunden hab.
in meinem vc++projekt steht jetzt die main.cpp folgendermassen:
bekomm nach dem übersetzten in vc++ dann eine werkstatt.dll die ich folgendermassen einbinden wolte:
java -Djava.library.path="hier hab ich den pfad zur dll" schnittstelle <-hab nur schnittstelle aufgerufen, nicht schnittstelle.class!
sieht hier einer einen Fehler? ich versuchs schon seit stunden aber ich seh einfach nicht was falsch ist..
danke schonmal!
ich versuche gerade ein einfaches helloworld-Programm das in visual c++ geschrieben ist mit dem JNI verfügbar zu machen.Visual c++ erstellt mir dabei die dll(werkstatt.dll) die ich in java einbinde.
Bekomme allerdings immer den folgenden Fehler:
exception in thread "main" java.lang.NoClassDefFoundError: und
Ich versteh schon allein nicht was das "und" in der Fehlermeldung soll???
bin folgendermaßen vorgegangen:
1.)java klasse "schnittstelle.java" geschrieben
Code:
class schnittstelle
{
public native void displayHelloWorld();
static
{
System.loadLibrary("werkstatt.dll");
}
public static void main(String[]args){
new schnittstelle().displayHelloWorld();
}
}
in meinem vc++projekt steht jetzt die main.cpp folgendermassen:
Code:
#include "main.h" // hier hab ich noch paar andere includedateien u.a. die jni.h
#include "schnittstelle.h" // die c-kompatible headerdatei
JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env,jobject obj)
{
printf("Helloworld!\n");
return;
}
bekomm nach dem übersetzten in vc++ dann eine werkstatt.dll die ich folgendermassen einbinden wolte:
java -Djava.library.path="hier hab ich den pfad zur dll" schnittstelle <-hab nur schnittstelle aufgerufen, nicht schnittstelle.class!
sieht hier einer einen Fehler? ich versuchs schon seit stunden aber ich seh einfach nicht was falsch ist..
danke schonmal!