JNI_CreateJavaVM () завершается с кодом выхода 1

Я пытаюсь вызвать метод Java из C ++, используя JNI. Для этого я установилjdk1.7.0_51, связывая противjdk1.7.0_51\lib\jvm.lib, в том числеjdk1.7.0_51\include а такжеjdk1.7.0_51\include\win32, используя следующий код в Visual Studio 2012, я попытался создать объект Java vm - но функция всегда завершает мое приложение с кодом выхода 1 (функция не возвращает 1: моя программа завершается полностью и отправляет код выхода 1).

#include <iostream>
#include "jni.h"

int main(int argc, char*argv[]){
  JNIEnv* env = nullptr;
  JavaVM* jvm = nullptr;
  JavaVMInitArgs vm_args;
  JavaVMOption options[2];
  options[0].optionString = "-Djava.class.path=.";
  options[1].optionString = "-DXcheck:jni:pedantic";  
  vm_args.version = JNI_VERSION_1_6;
  vm_args.nOptions = 2;
  vm_args.options = options;
  vm_args.ignoreUnrecognized = JNI_TRUE; // remove unrecognized options
  int ret = JNI_CreateJavaVM(&jvm, (void**) &env, &vm_args);
  std::cout << "This code is never reached" << std::endl;
  return 0;
}

ОПЕРАЦИОННЫЕ СИСТЕМЫ: Windows 7 (x64)

Составитель: Visual Studio 2012 (проект x86 / Win32)

Java VM: jdk1.7.0_51, i586 (на мой взгляд, все должно быть в порядке, потому что я компилирую для x86 - иначе связь с jvm.lib не будет работать)

Я уже пытался использовать оба:jdk1.7.0_51\jre\bin\client\jvm.dll также как иjdk1.7.0_51\jre\bin\Server\jvm.dll - с тем же результатом (хотя я не совсем уверен, в чем разница).

Любые идеи и предложения будут высоко оценены.

Ответы на вопрос(1)

Ваш ответ на вопрос