gpt4 book ai didi

c - jni 中 dll 加载异常

转载 作者:行者123 更新时间:2023-11-30 17:59:32 25 4
gpt4 key购买 nike

我正在尝试使用 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

什么问题?

最佳答案

我遇到了类似的问题,如果您确定 msvcr90.dll 是什么依赖项,那么您可以有多个选择。

  1. 将 dll 放入 java 库路径中,只需执行 System.out.println(System.getProperty("java.library.path")); 即可知道库路径是什么,然后将 dll 文件复制到其中之一目录。
  2. 以加载 HelloWorld.dll 的方式加载 dll,引用:Nice explanation

关于c - jni 中 dll 加载异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11361336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com