Я работаю с JNI и пытаюсь выгрузить (уничтожить) виртуальную машину с помощью функции DestoryJavaVM (сначала я вызываю метод DetachCurrentThread). Похоже, что теперь он влияет на виртуальную машину, и он все еще работает после вызова. Я читал в старых сообщениях Sun, что у DestoryJavaVM были проблемы в прошлом (JDK1.1-1.3 в 2001 году), но я использую JRE 6, и это, вероятно, должно работать сейчас, верно?
Мне нужно загрузить \ выгрузить виртуальную машину в одном и том же живом процессе, поскольку для каждой загрузки требуются другие классы для загрузки. Есть идеи как это можно сделать?
Дополнительная информация:
На этапе выгрузки я могу успешно отключитьCurrentThread и destroyVM (оба возвращают JNI_OK). Я даже FreeLibray (jvm.dll) успешно (возврат 1).
Когда я пытаюсь загрузить JVM снова, я могу LoadLibrary (), затем найти функцию CreateVM в DLL, и вызов CreateVM завершается неудачно (возврат -1). Что я тут не так делаю?
Спасибо,
Guy