VM初始化期间发生错误

时间:2010-03-25 15:32:42

标签: jvm initialization nativelibrary

运行使用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下

有没有人对导致此错误的原因有任何想法?感谢。

5 个答案:

答案 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(环境变量)设置不正确。

  1. 在设置PATH变量时,将jvm.dll的路径设置为列表中的第一个路径
  2. 重新启动计算机。
  3. 注意:不要将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定义为系统变量时,它开始按预期方式工作。