2012-03-21 19 views
5

में क्लास इंस्टेंस कैसे ढूंढें I एक काम कर रहे JVM के अंदर क्लास इंस्टेंस खोजने का तरीका जानने का प्रयास कर रहा हूं। JVM को दूसरी प्रक्रिया में एम्बेड किया गया है और इस प्रक्रिया द्वारा ऑब्जेक्ट बनाया गया है। एक ही प्रक्रिया मेरे जावा कोड निष्पादित करता है। मेरे जावा कोड में जावा ऑब्जेक्ट संदर्भ में मेरी सीधी पहुंच नहीं है, लेकिन मुझे उस ऑब्जेक्ट की कक्षा पता है। मैं यह जानना चाहता हूं कि जेवीएम में पहले से ही इस वर्ग की ऑब्जेक्ट्स हैं, और यदि वे हैं, तो मैं उन्हें ढूंढना चाहता हूं (इस वर्ग के सभी उदाहरणों के संदर्भ में ऑब्जेक्ट सरणी कहें)। यह तंत्र या तो जावा एपीआई या जेएनआई एपीआई हो सकता है।चल रहे JVM

मुझे पता है कि यह संभव है क्योंकि डिबगर्स मुझे सभी उदाहरणों का निरीक्षण करने देते हैं। मैं बस रास्ता खोजने के लिए प्रतीत नहीं कर सकता।

धन्यवाद

निकिता

+0

उन सभी सर्वलेट इंजन के बाहर Think। क्या आप एक अज्ञात एप्लिकेशन को जेबॉस या टॉमकैट या वेबस्फेयर या xxx में चल रहे हैं जो आपके इंस्टेंसिएटेड ऑब्जेक्ट्स तक पहुंच रहे हैं? – Java42

+0

यदि यह संभव था तो मैं बेहद चौंक गया। –

उत्तर

1

यदि कोई उत्सुक है, तो यह संभव है और मैं अब JVMTI का उपयोग कर कर रहा हूं। सीधा नहीं, लेकिन बहुत ही कामयाब। आप jvmti के बारे में मेरी दूसरी पोस्ट देख सकते हैं और आपको जवाब मिल जाएगा।

Perplexed by jvmti object allocation callback behavior

धन्यवाद

0

उपयोग Java Instrumentation APIs

+0

मुझे उपकरण पैकेज में कुछ भी नहीं मिला है जो मुझे पहले से ही तत्काल वस्तुओं तक पहुंच प्रदान करेगा। यह मुझे कक्षाओं और वर्ग लोडिंग के साथ परेशान करने देता है, लेकिन वस्तुओं के साथ नहीं। कोई और विचार ??? धन्यवाद –

+0

@NikitaVisnevski इस विधि को देखें 'getAllLoadedClasses() 'या' getInitiatedClasses (..) ' – Adrian

+0

(यहां पहुंच रहा है) मुझे लगता है कि आपको अपने (एम्बेडेड) JVM स्टार्टअप पर एक उपकरण एजेंट को स्पेक करने और विभिन्न कॉलों को जाल करने की आवश्यकता हो सकती है उदा। नया एक्स()। – alphazero

0

यह डिबग इंटरफ़ेस का उपयोग कर

http://docs.oracle.com/javase/6/docs/jdk/api/jpda/jdi/

हालांकि, अगर मैं आपकी आवश्यकता को समझने सही ढंग से, आप अपने प्रक्रिया की जरूरत ही डिबग करने के लिए जो शायद काम करने के लिए नहीं जा रहा है होगा किसी अन्य प्रक्रिया से संभव हो जाना चाहिए।

संबंधित मुद्दे