无法加载JVM

Cannot load JVM

本文关键字:JVM 加载      更新时间:2023-10-16

我正试图使用从这里采取的代码从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);

代码编译良好,然而,当我试图执行它时,我得到以下错误:

初始化VM时发生错误无法加载本机library: Can't find dependent libraries

在这个问题中,我使用了dependency walker来查找我丢失的二进制文件。事实证明,我的电脑缺少ieshims.dllwer.dll,根据这一点,上述dll用于vista及以上(我在XP)。
于是我想到了几个问题:

  • 我如何摆脱这个?
  • 为什么我首先得到这个错误?我不能在XP中加载JVM吗?

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

在你链接的文章下面的讨论区有一个类似的问题。

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

PATH = "C:Program FilesJavajdk1.6.0_18jrebinclient";...

还有另一种方法-您可以从自定义位置动态加载jvm.dll,并设置java.library.path变量指向本机库。这样,它就不必依赖于系统环境PATH。

下面是其他线程中的示例:

在c++中使用JNI创建JVM不返回