首页  >  文章  >  Java  >  为什么我的 JNI 项目抛出“UnsatisfiedLinkError:找不到依赖库”?

为什么我的 JNI 项目抛出“UnsatisfiedLinkError:找不到依赖库”?

Linda Hamilton
Linda Hamilton原创
2024-11-18 07:26:02169浏览

Why Does My JNI Project Throw

解决 JNI 项目中的 UnsatisfiedLinkError:缺少依赖库

在 JNI 项目中,出现 UnsatisfiedLinkError 并显示消息“找不到依赖库”当自定义库(例如 mylib.dll)依赖于系统搜索路径中不可用的第三方库(例如 libsndfile-1.dll)时,可能会出现“”。要解决此问题,需要遵循几个关键步骤:

  1. 确保正确的 DLL 放置: 放置自定义 DLL (mylib.dll) 和所需的依赖项 (libsndfile- 1.dll)与 Java 应用程序的 JAR 文件位于同一目录中。
  2. 验证 DLL 函数命名: 检查自定义 DLL 中的函数名称是否与 JNI 标头中定义的函数名称完全匹配文件。如有必要,请在构建过程中调整链接器标志以确保正确的方法命名。
  3. 考虑 Windows 特定行为: 在 Windows 上,如果 java.library.path 系统属性未明确指定设置后,DLL 必须驻留在当前工作目录或 Windows PATH 环境变量中包含的目录中。

其他故障排除提示:

  • 验证 Dependency Walker 警告: 即使 dependency walker 显示 MPR.DLL 和 SHLWAPI.DLL 的未解析导入,这些警告通常也可以被忽略,如 DW 常见问题解答中所述。
  • 检查共享库搜索路径: 使用命令“java -XshowSettings:properties -version”(Java 8 及更高版本中可用)显示共享库搜索路径并验证所需的 DLL 是否可访问。
  • 消除类路径问题:类路径和共享库搜索路径是独立且不相关的。确保所有必需的 JAR 文件都正确包含在类路径中。

通过仔细执行这些步骤,开发人员可以解决与 JNI 项目中缺少依赖库相关的 UnsatisfiedLinkErrors,从而使他们的应用程序顺利运行。

以上是为什么我的 JNI 项目抛出“UnsatisfiedLinkError:找不到依赖库”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn