मैं जावा उपकरण बनाने की कोशिश कर रहा हूं जो जावा एप्लिकेशन की संरचना को स्कैन करेगा और कुछ सार्थक जानकारी प्रदान करेगा। ऐसा करने के लिए, मुझे प्रोजेक्ट लोकेशन (जेएआर/डब्ल्यूएआर या सिर्फ एक फ़ोल्डर) से सभी .class फ़ाइलों को स्कैन करने में सक्षम होना चाहिए और उनके तरीकों के बारे में पढ़ने के लिए प्रतिबिंब का उपयोग करना होगा। यह असंभव के करीब होने के लिए साबित हो रहा है।किसी फ़ोल्डर या जेएआर से रनटाइम पर कक्षाएं कैसे लोड करें?
मुझे URLClassloader के आधार पर बहुत से समाधान मिल सकते हैं जो मुझे निर्देशिका/संग्रह से विशिष्ट वर्गों को लोड करने की अनुमति देते हैं, लेकिन कोई भी जो कक्षा वर्ग या पैकेज संरचना के बारे में कोई जानकारी के बिना कक्षाओं को लोड करने की अनुमति देगा।
संपादित करें: मुझे लगता है कि मैंने इसे खराब तरीके से phrased किया। मेरी समस्या यह नहीं है कि मुझे सभी कक्षा फाइलें नहीं मिल सकती हैं, मैं इसे रिकर्सन आदि के साथ कर सकता हूं और उन्हें सही तरीके से ढूंढ सकता हूं। मेरी समस्या प्रत्येक वर्ग फ़ाइल के लिए क्लास ऑब्जेक्ट प्राप्त कर रही है।
आप अपने पूर्ण योग्य नाम को अनदेखा कर एक वर्ग कैसे लोड कर सकते हैं? मुझे नहीं लगता कि यह संभव है। –
नीचे दिए गए उत्तरों आपको क्लास फाइलों का पता लगाने देंगे, लेकिन, आपके प्रोजेक्ट के आकार के आधार पर, यह [asm] (http://asm.ow2.org/) या [javassist] (http: // www.csg.ci.iu-tokyo.ac.jp/~chiba/javassist/)। ये आपको कक्षाओं को स्मृति में लोड किए बिना विश्लेषण करने देगा। –