Jvm 初始化VM时出错 < >我在使用C++代码运行一个64位机器上创建的可执行文件时,得到以下错误:

Jvm 初始化VM时出错 < >我在使用C++代码运行一个64位机器上创建的可执行文件时,得到以下错误:,jvm,initialization,Jvm,Initialization,“初始化VM时出错 无法加载本机库:找不到依赖库“ 我的路径(如下所示)显然指向jvm.dll,因为我在C:\Progra~1\Java\jdk1.6.0_17\jre\bin和C:\Windows\System32中都有该文件 PATH=C:\ProgramFiles(x86)\Gmake\bin;C:\ProgramFiles(x86)\apache-ant-1.7.1\bin;C:\Progra~1\Java\jdk1.6.0\u 17\bin;C:\ProgramFiles(x86)\M

“初始化VM时出错 无法加载本机库:找不到依赖库“

我的路径(如下所示)显然指向jvm.dll,因为我在C:\Progra~1\Java\jdk1.6.0_17\jre\bin和C:\Windows\System32中都有该文件

PATH=C:\ProgramFiles(x86)\Gmake\bin;C:\ProgramFiles(x86)\apache-ant-1.7.1\bin;C:\Progra~1\Java\jdk1.6.0\u 17\bin;C:\ProgramFiles(x86)\Microsoft Visual Studio 8\Common7\Tools;C:\Progra~1\Java\jdk1.6.0\u 17\jre\bin\server;C:\Progra~1\Java\jdk1.6.0\u 17\jre\bin;C:\Windows\System32


有人知道是什么导致了这个错误吗?谢谢。

用于找出缺少的dll。

这就是我解决类似问题的方法:

  • 使用JavaRa:删除旧的java版本
  • 重新启动电脑
  • 重新安装了最新的JDK版本

在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\u 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\u 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\

希望有此帮助。

由于路径(环境变量)设置不正确,我出现了此错误

  • 设置PATH变量时,将jvm.dll的路径设置为列表中的第一个路径
  • 重新启动你的机器

  • 注意:不要将jvm.dll移动到项目目录。

    在我的例子中,jvm.dll文件与我的exe文件位于同一文件夹中。我只是从那里删除了jvm.dll,它就工作了。可能,它在路径中的一个之前

    我有一个复杂的案例。在与我的
    exe
    文件相同的文件夹中有一个
    jvm.dll
    文件。我删除了它(因为它不应该在那里),但当时找不到
    jvm.dll


    我想通过将
    %JAVA\u HOME%\jre\bin\server
    添加到我的
    路径中来解决这个问题,因为
    jvm.dll
    位于那里。然而,它没有起作用。事实证明,Windows加载程序在搜索
    PATH
    中指定的路径中的
    jvm.dll
    时不会扩展
    JAVA\u HOME
    变量,因为我将
    JAVA\u HOME
    定义为用户变量。当我将
    JAVA\u HOME
    定义为系统变量时,它开始按预期工作。

    感谢您的回复。这是一个很棒的工具。运行探查器时,我得到一个错误:LoadLibraryA(“C:\bin\verify.dll”)由线程1返回NULL。错误:找不到指定的模块(126)它说c:\windows\system32\JVM.DLL正在调用它。您可以帮助解决两个问题:1)为什么它调用system32 JVM而不是我路径中的JVM?2) 为什么它要在C:\bin中查找任何dll?再次感谢您。Java有一种将二进制文件安装到Windows\System32的不良倾向。您可能正在运行这些,而不是稍后在您的路径中运行的。如果要手动将java添加到路径,只需从windows\system32中删除java和javaw即可。关于dll的位置,不知道。