我使用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已正确设置。我不知道问题可能是什么。
我搜索了错误但无法修复它。
答案 0 :(得分:1)
该错误意味着Java VM正在查找并尝试加载.dll,但无法找到.dll所依赖的其他.dll。一种选择是确保那些额外的依赖项在PATH中,但这可能很棘手,因为它依赖于在安装期间设置环境变量,在运行时设置它们,或者将其他.dll放在同一个文件夹中。
另一种解决方法是在链接.dll时使用-static
链接器标志(请注意,这与-shared
选项不相互排斥,后者告诉链接器打包将代码转换为.dll)。这意味着其他依赖项将静态链接到您的.dll,而不是需要在运行时定位。