この質問は以前にもあったと思いましたが、ここでは見つかりませんでした...
SWIG を使用して C++ クラスの JNI ラッパーを作成しました。Java がクラスの finalize() を呼び出すことがないように見えることを除いて、すべてがうまく機能するため、クラスのデストラクタが呼び出されることはありません。クラスのデストラクタは最終的なファイル I/O を実行するため、残念ながら、これは単なるマイナー メモリ リークではありません。
Google で検索すると、Java を強制的に GC にしてオブジェクトを破棄する方法はないようです。真実?
SWIG ファイルを操作して C++ デストラクタを呼び出す Java 関数を作成できることはわかっていますが、このクラスは複数の異なるプラットフォーム/言語のエンド ユーザーによって使用されているため、Java のみのクラスを追加すると、私たちの技術に矛盾が生じます。作家は気に入らないでしょう。