首页  >  文章  >  Java  >  使用 JNI 时为什么会收到“UnsatisfiedLinkError:找不到依赖库”?

使用 JNI 时为什么会收到“UnsatisfiedLinkError:找不到依赖库”?

Linda Hamilton
Linda Hamilton原创
2024-11-16 09:49:03589浏览

Why am I getting

解决 JNI 因缺少依赖库而导致的“UnsatisfiedLinkError”

Java 本机接口 (JNI) 提供了从 Java 内部调用本机代码的机会程序。然而,遇到“UnsatisfiedLinkError”可能会令人沮丧,给您留下令人困惑的错误消息:“找不到依赖库。”

解决“UnsatisfiedLinkError”

要解决这个问题,了解共享库搜索路径的范围及其独立性至关重要类路径。在 Windows 环境中,您尝试加载的 JNI 库必须驻留在当前工作目录中或 Windows PATH 环境变量中指定的目录中。

建议修复

  1. 验证共享库的位置:确保您的本机代码所需的库(例如,libsndfile、MPR.DLL)位于适当的目录中。
  2. 解决方法名称差异:确保 JNI 库中的方法名称与 Java 标头中定义的方法名称完全匹配文件。
  3. 设置系统属性(可选):在 Java 8 或更高版本中,您可以可以手动设置 java.library.path 系统属性来指定共享库的搜索路径。

参考资料

详细了解 JNI 及其规范,请考虑参考:

  • Oracle 的 HTML 版本的 JNI 规范: https://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/intro.html
  • Oracle 论坛上的错误报告:https://bugs.java.com/bugdatabase /view_bug.do?bug_id=8021805

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

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