Java не может загрузить JVM

Я пытаюсь запустить код Java из C, используя код, взятый из Вот. Код, который пытается запустить 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);

Однако код компилируется нормально, когда я пытаюсь выполнить его, я получаю следующую ошибку:

Произошла ошибка при инициализации ВМ. Невозможно загрузить собственный
библиотека: не удается найти зависимые библиотеки

Смотря на этот Вопрос Я использовал ходунки зависимостей, чтобы узнать, какие двоичные файлы мне не хватает. Оказывается, я скучаю ieshims.dll а также wer.dll с моего компьютера, который в соответствии с этот упомянутые dll используются в Vista и выше (я на XP).
Несколько вопросов приходят мне в голову:

  • Как мне избавиться от этого?
  • Почему я получаю эту ошибку в первую очередь? Я не могу загрузить JVM в XP?

Я на Windows XP, использую Visual Studio 2008, JDK 1.7 установлен (пробовал с 1.6 тоже).

3

Решение

В ветке обсуждения ниже статьи, на которую вы ссылаетесь, есть похожий вопрос.

Там пользователь обнаружил, что решение состоит в том, чтобы убедиться, что у вас есть путь к вашим двоичным файлам Java в PATH переменная окружения. Например:

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

Другие решения

Есть и другой способ — вы можете динамически загружать jvm.dll из пользовательского места и устанавливать переменную java.library.path, указывающую на собственные библиотеки. Таким образом, он не должен зависеть от системного окружения PATH.

Вот пример в другой теме:

Создание JVM с использованием JNI в C ++ не возвращает

3

По вопросам рекламы [email protected]