我试图用JNI实现一个简单的HelloWorld应用程序。从Java调用c函数。我创建了一个java类:
class HelloWorld{
private native void print();
public static void main(String[] args){
new HelloWorld().print();
}
static{
System.load("c://jni_training//HelloWorld.dll");
}
}
然后生成一个.h文件,创建了c实现并成功生成了.dll。但我无法执行java HelloWorld ...我看到异常
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\jni_training\Hello World.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1928)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1825)
at java.lang.Runtime.load0(Runtime.java:792)
at java.lang.System.load(System.java:1059)
at HelloWorld.<clinit>(HelloWorld.java:10
问题是什么?
答案 0 :(得分:0)
我遇到了类似的问题,如果您确定msvcr90.dll是依赖项,那么您可以有多个选项。
答案 1 :(得分:0)
如果该DLL不在C ++中,那么你必须通过CLI类的态度进行接口。