我正在使用JNI的Java项目。 JNI调用我自己编写的自定义库,让我们说mylib.dll,这取决于第三方库libsndfile-1.dll。 当我运行我的程序时,它崩溃了 java.lang.UnsatisfiedLinkError: C:\…path…\mylib.dll: Can't find dependent libraries. 我search了这个网站(和其他人),我已经尝试了一些修复: 我跑了依赖沃克。 DW给出了一些警告 – libsndfile,MPR.DLL和SHLWAPI.DLL所需的两个库有“未parsing的导入” – 但DW FAQ表示可以安全地忽略这些警告。 我修复了mylib.dll中的方法名称,正如这里所build议的那样。 方法名已经被编译器弄坏了,但是我添加了链接器标志,现在dll方法名与我的jni头文件中的名称完全匹配。 我将所有这些DLL放在相同的目录中 – 与调用它们的.jar相同的目录 – 以确保它们位于正确的PATH上。 没有骰子。 有谁知道发生了什么事? 我正在MacBook Pro上通过Visual Studio 2010进行开发(通过Parallels)。 我正在使用东芝笔记本电脑在Windows XP中进行testing。