我使用命令提示符生成了一个带有 jni 的 dll 文件。我可以使用“java helloWorld”命令运行下面的代码。但我不能从日食中做到这一点。当我运行程序时,我收到一个错误,上面写着:
线程“main”中的异常 java.lang.UnsatisfiedLinkError:java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.loadLibrary0(Unknown Source) at java.lang.System 的 java.library.path 中没有 native_library .loadLibrary(Unknown Source) at helloWorld.(helloWorld.java:6)
我使用了 native_library 的绝对路径,如下所示。它有什么问题?
你好世界.java:
public class helloWorld {
static{
System.loadLibrary("native_library");
System.load("C:/javaworkspace/helloWorld/src/native_library.dll");
}
public static native void writeout(String ss);
public static void main(String[] args) {
String sdf="Hello World";
writeout(sdf);
}
}
native_library.c:
#include <stdio.h>
#include "helloWorld.h"
JNIEXPORT void JNICALL Java_helloWorld_writeout
(JNIEnv * env, jclass clazz, jstring str2)
{
const char *nativeString = (*env)->GetStringUTFChars(env, str2, 0);
printf("%s \n",nativeString);
(*env)->ReleaseStringUTFChars(env, str2, nativeString);
}