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