Hallo,
ich habe ein kleines Problem mit der Einbindung einer DLL.
Wenn ich versuche Funktionen aus der DLL zu benutzen bekomme ich einen "UnsatisfiedLinkError". Das Einbinden / Laden der DLL scheint zu funktionieren (die Exception kommt nur, wenn ich die Funktion aus der DLL benutze).
Ich habe versucht mich an das Beispiel aus "The Java Native Interface Programmer's Guide and Specification" zu halten.
Hier mal mein Java-Code:
die eintsprechende Header-Datei:
und die .c-Datei:
Ich bekomme zur Laufzeit dann folgende Exception:
Kann mir jemand sagen wieso ich die Exception bekomme.
Danke & mfG
Bob
Edit: Den ClassPath hab ich natürlich gesetzt: -Djava.library.path=.\bin
ich habe ein kleines Problem mit der Einbindung einer DLL.
Wenn ich versuche Funktionen aus der DLL zu benutzen bekomme ich einen "UnsatisfiedLinkError". Das Einbinden / Laden der DLL scheint zu funktionieren (die Exception kommt nur, wenn ich die Funktion aus der DLL benutze).
Ich habe versucht mich an das Beispiel aus "The Java Native Interface Programmer's Guide and Specification" zu halten.
Hier mal mein Java-Code:
Java:
public class HelloWorld {
private native void print();
public static void main(String[] args) {
new HelloWorld().print();
}
static {
System.loadLibrary("HelloWorld");
}
}
die eintsprechende Header-Datei:
Code:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloWorld */
#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloWorld
* Method: print
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloWorld_print
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
und die .c-Datei:
Code:
#include <jni.h>
#include <stdio.h>
#include "HelloWorld.h"
JNIEXPORT void JNICALL
Java_HelloWorld_print(JNIEnv *env, jobject obj)
{
printf("Hello World!\n");
return;
}
Ich bekomme zur Laufzeit dann folgende Exception:
Java:
Exception in thread "main" java.lang.UnsatisfiedLinkError: HelloWorld.print()V
at HelloWorld.print(Native Method)
at HelloWorld.main(HelloWorld.java:7)
Kann mir jemand sagen wieso ich die Exception bekomme.
Danke & mfG
Bob
Edit: Den ClassPath hab ich natürlich gesetzt: -Djava.library.path=.\bin
Zuletzt bearbeitet: