Я пытаюсь запустить код Java из C, используя код, взятый из here. Код, который пытается запустить JVM следующим образом: однакоНе удается загрузить 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 вопрос я использовал зависимость ходок, чтобы узнать, какие двоичные файлы мне не хватает. Оказывается, мне не хватает ieshims.dll
и wer.dll
с моего компьютера, который согласно this указанные DLL используются в Vista и выше (я нахожусь на XP).
Так несколько вопросов приходят на ум:
- Как избавиться от этого?
- Почему я получаю эту ошибку в первую очередь? Я не могу загрузить JVM в XP?
Я нахожусь в Windows XP, используя Visual Studio 2008, установлен JDK 1.7 (тоже с 1.6).
Они могут вводить в заблуждение, не связанных между собой ошибок: http://stackoverflow.com/questions/2465111/dependency-walker-reports-ieshims-dll-and-wer -dll-missing – Thomas
@ Томас, они были. – atoMerz