ich diese Frage dachte aufrufen, bevor gefragt worden wäre, aber ich konnte es nicht finden Sie hier ...Kraft Java meine C++ destructor (JNI)
Ich habe SWIG verwendet, um eine JNI-Wrapper um eine zu erstellen C++ - Klasse. Alles funktioniert großartig, außer dass Java nie die finalize() der Klasse zu nennen scheint, also wird der Destruktor meiner Klasse nie aufgerufen. Der Destruktor der Klasse führt einige abschließende Datei-I/O aus, also ist dies leider nicht nur ein kleiner Speicherleck.
Bei der Suche über Google scheint es keine Möglichkeit zu geben, Java zum GC zu zwingen und ein Objekt zu zerstören. Wahr?
Ich weiß, ich könnte meine SWIG-Datei manipulieren und erstellen Sie eine Java-Funktion, die den C++ - Destruktor aufrufen würde, aber diese Klasse wird von Endbenutzern in verschiedenen Plattformen/Sprachen verwendet, so dass die Zugabe von einem Java-only erstellen Inkonsequenz, die unsere Tech-Autoren nicht mögen werden.