मैंने सोचा होगा इस सवाल से पहले कहा गया है, लेकिन मैं इसे यहाँ नहीं मिला ...फोर्स जावा मेरी सी ++ नाशक (JNI) कॉल करने के लिए
मैं एक के चारों ओर एक JNI आवरण बनाने के लिए बड़ा घूँट का उपयोग किया है सी ++ कक्षा। सभी महान काम करता है सिवाय इसके कि जावा क्लास के अंतिमकरण() को कभी भी कॉल नहीं करता है, इसलिए बदले में, मेरी कक्षा के विनाशक को कभी भी बुलाया नहीं जाता है। कक्षा का विनाशक कुछ अंतिम फ़ाइल I/O करता है, इसलिए दुर्भाग्यवश, यह केवल मामूली स्मृति रिसाव नहीं है।
Google के माध्यम से खोजना, जावा को जीसी को मजबूर करने और किसी ऑब्जेक्ट को नष्ट करने का कोई तरीका प्रतीत नहीं होता है। सच?
मुझे पता है कि मैं अपनी एसडब्ल्यूआईजी फ़ाइल में हेरफेर कर सकता हूं और एक जावा फ़ंक्शन बना सकता हूं जो सी ++ विनाशक को कॉल करेगा, लेकिन इस वर्ग का उपयोग कई उपयोगकर्ताओं द्वारा कई अलग-अलग प्लेटफ़ॉर्म/भाषाओं में किया जाता है, इसलिए केवल जावा के अतिरिक्त ही एक असंगतता कि हमारे तकनीकी लेखकों को पसंद नहीं है।