pensé que esta pregunta habría sido preguntado antes, pero no pude encontrar aquí ...Fuerza Java para llamar a mi C++ destructor (JNI)
he utilizado SWIG para crear un envoltorio alrededor de una JNI Clase de C++ Todo funciona bien, excepto que Java nunca parece llamar al finalize() de la clase, por lo que, a su vez, nunca se llama al destructor de mi clase. El destructor de la clase hace algo de E/S de archivo final, así que desafortunadamente, esto no es solo una fuga de memoria menor.
Buscando a través de Google, no parece haber una manera de forzar a Java a GC y destruir un objeto. ¿Cierto?
Sé que podría manipular mi archivo SWIG y crear una función java que llamaría al destructor C++, pero esta clase es utilizada por los usuarios finales en diferentes plataformas/idiomas, por lo que la adición de un solo Java creará un incoherencia que a nuestros escritores tecnológicos no les va a gustar.