JNI _CreateJavaVM ()происходит сбой каждый раз, когда я запускаю свое приложение (ровно)

У меня есть Windows MFC приложение, которое:

(1 )загружает JVM(JNI_CreateJavaVM())

(2 )подключает основной поток к JVM(AttachCurrentThread())

(3 )загружает некоторые классы и методы Java(FindClass()и GetMethodID()/GetStaticMethodID())

(4 )Регистрирует некоторые собственные обратные вызовы для использования в коде Java(RegisterNatives())

(5 )Отсоединяет поток от JVM(DetachCurrentThread())

(6 )Уничтожает JVM(DestroyJavaVM())

Все вышеперечисленные функции завершаются успешно через раз Я запускаю приложение. Я знаю, что они преуспевают, потому что, в дополнение к вышесказанному, я взаимодействую с приложением и успешно вызываю статические методы Java, и эти методы Java успешно вызывают мои собственные обратные вызовы. Мое приложение завершается изящно, и несомненно, что ожидаемые функции Java и собственные обратные вызовы были выполнены.

Тем не менее, через раз когда я запускаю приложение, вызов JNI_CreateJavaVM()терпит неудачу (и не заполняетJavaVM *). Абсолютно ничего не меняется между запусками приложения . Я просто запускаю его один раз (успешно, даже без ничего, кроме вышеупомянутых 6 шагов ), изящно завершаю работу, запускаю снова, и он терпит неудачу, туда и обратно. Нет никаких исключений для обратного -и -следующего успеха/неудачи -. Я могу запускать его десятки раз, и он точно колеблется каждый раз между успехом и неудачей на линии JNI_CreateJavaVM().

При необходимости я вставлю код. Тем не менее, я надеюсь, что у кого-то есть понимание того, что я предоставил. (Примечание. :это приложение листа свойств -BCGSoft MFC, хотя я сильно сомневаюсь, что это имеет значение.)

8
задан Dan Nissenbaum 18 May 2012 в 02:55
поделиться