आप -verbose:class
वीएम विकल्प का उपयोग कर प्रोजेक्ट चला सकते हैं। यह उन सभी भारित वर्गों के लिए प्रिंट करेगा जहां से उन्हें लोड किया जाता है। कुछ स्मार्ट पार्सिंग ऐप/grep/regexp का उपयोग करने से आप जार नामों को अद्वितीय प्रविष्टियों के सेट में फ़िल्टर कर सकते हैं और आपको बताएंगे कि कौन सा उपयोग किया जाता है।
मुझे लगता है कि यह आसान होगा क्योंकि यह स्वचालित रूप से आपको बताएगा कि कक्षा का उपयोग किया जाता है और यदि ऐसा है तो जार।
बेशक इस और कोड कवरेज के साथ समस्या यह है कि यह संभव होगा कि आप एक जार हटा दें जो केवल कुछ असाधारण मामले में उपयोग किया जाता है, लेकिन आपका कंपाइलर शिकायत करेगा यदि आपने एक या दो को हटा दिया है, तो आपको छोड़कर (ज्यादातर जटिल नहीं) खोज का कार्य जो जार कक्षा में है
संभव सुझाव linux का उपयोग करते समय:।
java -verbose:class <your startup command here> | grep "\[Loaded" | grep -o "from .*\]" | cut -c 6- | sort | uniq
आप लिनक्स का उपयोग नहीं कर रहे हैं, तो फिर एक फाइल करने के लिए बचाने के लिए, लिनक्स मशीन प्राप्त करें और लिनक्स पर चलें (या विंडोज़ पर बैश कमांड चलाने के लिए कुछ उपयोग करें)
एक करके classpath एक से जार हटाने ई पर पिछले फिर से जोड़ना हटाया जब निर्माण टूट जाता है –
@ratchet सनकी - बुरा विचार है, अप्रत्यक्ष क्रम निर्भरता का पता लगाने नहीं होगा जब तक निर्माण पूर्ण एकीकरण के परीक्षण भी शामिल है। –
@ratchet freak - यह काम कर सकता है, लेकिन यह मेरी ब्रूट फोर्स आखिरी बहाली है। – RobAu