JNI 项目中的 UnsatisfiedLinkError 故障排除
当在 JNI 项目中遇到“UnsatisfiedLinkError: Can't find dependentlibrary”问题时,这一点至关重要解决本机库与其依赖库之间存在问题的关系。
在您的情况下,mylib.dll 依赖于 libsndfile-1.dll,而 libsndfile-1.dll 又需要 MPR.DLL 和 SHLWAPI.DLL。如前所述,可以忽略 Dependency Walker 关于未解决的 MPR.DLL 和 SHLWAPI.DLL 导入的警告。
要解决此问题,请确保所有依赖 DLL 都存在于与 mylib.dll 或 mylib.dll 相同的目录中并且可访问沿着 Windows PATH 环境变量。
此外,系统属性 java.library.path 并不直接负责定位 DLL。在 Windows 中,如果未使用 java.library.path,则 DLL 必须位于当前工作目录或 PATH 目录中。
要进行验证,请运行“java -XshowSettings:properties -version”并检查共享库搜索路径的 java.library.path 属性。
记住,依赖库必须存在且可访问;它们与本机库的相对位置应遵守上述指南。
以上是如何解决 JNI 项目中的“UnsatisfiedLinkError:找不到依赖库”?的详细内容。更多信息请关注PHP中文网其他相关文章!