JNI: gerenciar adequadamente a vida útil de um objeto Java

Quando eu crio um ponto de implementação nativo em c ++, como posso garantir que a parte nativa também seja excluída quando o objeto java é excluído pela JVM? Eu posso adicionar alguns métodos que o usuário do objeto java tem que chamar explicitamente, mas eu gostaria de saber se há algum gancho que eu poderia colocar para manipular quando o objeto java é excluído (lixo coletado) para que eu possa excluir automaticamente o objeto de implementação c + + também.

eu reviseiJACE parece que faz isso, mas eu precisaria executar o PeerEnhancer para corrigir o arquivo de classe gerado (provavelmente é assim que ele engata delete? ou talvez precise desse patch para outra coisa). No entanto, eu gostaria de evitar mexer com arquivos java compilados, eu não quero nada extravagante

questionAnswers(2)

yourAnswerToTheQuestion