Сохранение глобальной ссылки на среду JNIEnv

Я откладываюJNIEnv в глобальном, так что я могу вызвать статические методы Java позже. Но нужно ли хранить глобальный указатель наJNIEnvОни могут быть такими же, как с любым другим Java-объектом, или это особый случай, который не требует этого.

JNIEnv* globalEnvPointer;

[JNICALL etc] void init(JNIENv* env, [etc])
{
   //required?
   globalEnvPointer = (JNIENv*) (env*)->GetGlobalRef(env, env);
   //or is this OK?
   globalEnvPointer = env;
}

Edit

Я немного тупой здесь, все методы, которые будут использоватьglobalEnvPointerвызываются в моем init, потому что мойinit на самом деле мойc Программа & APOS; smain метод, который не вернется до конца программы. Я также не использую другие темы в программе c. Я думаю, что это упрощает ответ.

JNIEnv* globalEnvPointer;

[JNICALL etc] void main(JNIENv* env, [etc])
{
   //required?
   globalEnvPointer = (JNIENv*) (env*)->GetGlobalRef(env, env);
   //or is this OK?
   globalEnvPointer = env;
   someMethod();
}

void someMethod()
{
   //use globalEnvPointer here
}

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

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