java - 无法加载 JVM

标签 java c++ jvm java-native-interface dependencies

我正在尝试使用从 here 中获取的代码从 C 运行 java 代码.尝试运行 JVM 的代码如下:

JNIEnv *env;
    JavaVMInitArgs vm_args;
    JavaVMOption options;
    options.optionString = "-Djava.class.path=D:\\Java Src\\TestStruct";
    vm_args.version = JNI_VERSION_1_6;
    vm_args.nOptions = 1;
    vm_args.options = &options;
    vm_args.ignoreUnrecognized = 0;

    int ret = JNI_CreateJavaVM(jvm, (void**)&env, &vm_args);

代码编译正常,但是当我尝试执行它时出现以下错误:

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

查看this问题 我使用 dependency walker 来找出我缺少的二进制文件。根据 this 结果,我的计算机中缺少 ieshims.dllwer.dll上面提到的 dll 在 vi​​sta 及更高版本中使用(我在 XP 上)。
所以我想到了几个问题:

  • 我该如何摆脱它?
  • 为什么我首先会收到此错误?我不能在 XP 中加载 JVM 吗?

我在 Windows XP 上,使用 Visual Studio 2008,安装了 JDK 1.7(也尝试过 1.6)。

最佳答案

您链接的文章下方的讨论线程中有一个类似的问题。

在那里,一位用户发现解决方案是确保您在 PATH 环境变量中有您的 Java 二进制文件的路径。例如:

PATH = "C:\Program Files\Java\jdk1.6.0_18\jre\bin\client";...

关于java - 无法加载 JVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15873213/

相关文章:

java - 将包含数据的数组传递给 List 的 toArray 方法

java - Spring 应用程序未在 Debug模式下部署

java - Eclipse/Checkstyle - 强制类/全局变量为私有(private)

c++ - gcc:带有 Wextra 和成员初始化的 weffc++

java - 从另一个 JVM 加载 JVM 中现有的类对象

java - java中输出字数统计时出错

c++ - diamond中无法通过std::unique_ptr访问最基类的protected成员变量

c++ - 从 C++ 调用未知(按名称)lua 函数

scala - Sbt:使用 Java 6 编译并使用 Java 7 运行

java - yarn : Containers and JVM