运行使用C ++代码在64位计算机上创建的可执行文件时出现以下错误:
“VM初始化期间发生错误 无法加载本机库:找不到依赖库“
我的PATH(如下所示)显然指向jvm.dll,因为我在C:\ Progra~1 \ Java \ jdk1.6.0_17 \ jre \ bin和C:\ Windows \ System32
中都有该文件PATH = C:\ Program Files(x86)\ Gmake \ bin; C:\ Program Files(x86)\ apache-ant-1.7.1 \ bin; C:\ Progra~1 \ Java \ jdk1.6.0_17 \ bin; C:\ Program Files(x86)\ Microsoft Visual Studio 8 \ Common7 \ Tools; C:\ Progra~1 \ Java \ jdk1.6.0_17 \ jre \ bin \ server; C:\ Progra~1 \ Java \ jdk1.6.0_17 \ JRE \ BIN; C:\ Windows \ System32下
有没有人对导致此错误的原因有任何想法?感谢。
答案 0 :(得分:5)
使用dependency walker找出缺少的dll。
答案 1 :(得分:4)
我在Windows2008 R2版本中运行java.exe时遇到同样的问题。
我的路径是
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32
\WindowsPowerShell\v1.0\;C:\Program Files\System Center Operations Manager 2007\
;C:\Java\jdk1.6.0_33\bin
当我在C:\ Java \ jdk1.6.0_33 \ bin下运行java.exe时,它运行正常。我发现在c:\ Windows \ System32 \中附带了java.exe的副本。当我运行c:\ Windows \ System32 \ java.exe时,它显示相同的错误:
C:\>Windows\System32\java.exe
Error occurred during initialization of VM
Unable to load native library: Can't find dependent libraries
我通过将C:\ Java \ jdk1.6.0_33 \ bin移动到PATH环境的开头来解决了这个问题:
PATH=C:\Java\jdk1.6.0_33\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\
Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\System Center
Operations Manager 2007\
希望得到这个帮助。
答案 2 :(得分:2)
这就是我解决类似问题的方法:
答案 3 :(得分:1)
我收到此错误,因为我的PATH(环境变量)设置不正确。
注意:不要将jvm.dll移动到项目目录中。
答案 4 :(得分:0)
我的案子很复杂。我的jvm.dll
文件所在的文件夹中有一个exe
文件。我删除了它(因为它不应该存在),但是当时找不到jvm.dll
。
我想通过将%JAVA_HOME%\jre\bin\server
添加到我的PATH
中来解决此问题,因为jvm.dll
位于那里。但是,它没有用。事实证明,Windows加载程序不会在JAVA_HOME
指定的路径中搜索jvm.dll
时扩展PATH
变量,因为我将JAVA_HOME
定义为用户变量。当我将JAVA_HOME
定义为系统变量时,它开始按预期方式工作。