我正在尝试使用从 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.dll
和 wer.dll
上面提到的 dll 在 vista 及更高版本中使用(我在 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/