JNI无法加载本机库

时间:2017-02-04 18:28:47

标签: java c java-native-interface

我使用JNI作为连接我的java代码和C代码的意思。

代码编译得很好,屏幕GUI应用程序打开然后关闭,这意味着它的代码部分是纯C的错误。

但是当我运行程序时,输出控制台会立即告诉我:

Error occurred during initialization of VM
Unable to load native library: Can't find dependent libraries

并返回1作为错误代码。我在exe的同一文件夹中得到了jvm.dll,我认为JDK PATH已正确设置。我不知道问题可能是什么。

我搜索了错误但无法修复它。

1 个答案:

答案 0 :(得分:1)

该错误意味着Java VM正在查找并尝试加载.dll,但无法找到.dll所依赖的其他.dll。一种选择是确保那些额外的依赖项在PATH中,但这可能很棘手,因为它依赖于在安装期间设置环境变量,在运行时设置它们,或者将其他.dll放在同一个文件夹中。

另一种解决方法是在链接.dll时使用-static链接器标志(请注意,这与-shared选项不相互排斥,后者告诉链接器打包代码转换为.dll)。这意味着其他依赖项将静态链接到您的.dll,而不是需要在运行时定位。