एक जार फ़ाइल के अंदर वर्गों, विधियों, गुणों आदि को देखने का सबसे आसान तरीका क्या होगा? मैं जावा के लिए बहुत उपयोगी लुत्ज रोएडर .NET रिफ्लेक्टर के बराबर कुछ देख रहा हूं
एक जार फ़ाइल के अंदर वर्गों, विधियों, गुणों आदि को देखने का सबसे आसान तरीका क्या होगा? मैं जावा के लिए बहुत उपयोगी लुत्ज रोएडर .NET रिफ्लेक्टर के बराबर कुछ देख रहा हूं
जवाबों:
JDK का उपयोग करके, jar -tf
जार में फ़ाइलों को सूचीबद्ध करेगा। javap
आपको एक विशेष वर्ग फ़ाइल से अधिक विवरण देगा।
tar
विकल्प के साथ अनिवार्य होने के बाद लेता है ।
C:\Program Files\Java\jdk<version>\bin
उपयोग करने से पहले आपको अपने सिस्टम या उपयोगकर्ता PATH परिवेश चर में जोड़ना पड़ सकता है jar
। (जहां <संस्करण> आपका jdk संस्करण-बिल्ड नंबर है। इसे जांचें C:\Program Files\Java
)
jar tf test.jar | grep MANIFEST
मैं आमतौर पर उन्हें 7-ज़िप के साथ खोलता हूं ... यह कम से कम पैकेज और कक्षाएं और संसाधन देखने की अनुमति देता है।
क्या मुझे विधियों या क्षेत्रों को देखने की आवश्यकता है, मैं जद का उपयोग करूंगा लेकिन निश्चित रूप से, (अच्छे) JavaDoc पर भरोसा करना बेहतर है ...
अब, कहीं SO पर कुछ ग्रहण प्लग-इन का उल्लेख किया गया था, जिसमें यह पता लगाने के लिए कि जार फ़ाइल एक कक्षा में स्थित है, शायद वे अधिक कर सकते हैं (यानी आपने जो अनुरोध किया था)।
[संपादित करें] SO थ्रेड का संदर्भ। जो नहीं पूछा गया है, लेकिन किसी भी तरह से संबंधित है, इस प्रकार उपयोगी है: जावा: मुझे कैसे पता चलेगा कि किस जार फ़ाइल को वर्ग नाम दिया गया है?
मैं व्यक्तिगत रूप से JD-GUI का उपयोग करता हूं। यह एक नि: शुल्क 'डिकंपॉइलर' है, क्योंकि यह आपको कक्षाओं में स्रोत कोड, कक्षाएं और ऑब्जेक्ट्स को देखने की अनुमति देता है, साथ ही बाईं ओर एक ट्री मेनू में फ़ाइल संरचना को देखता है। हालाँकि, यह आपको कक्षाओं को सीधे संशोधित करने की अनुमति नहीं देता है।
JD-GUI की वेबसाइट: http://jd.benow.ca/
मामले में किसी को यह पहले से ही पता नहीं है, एक JAR फ़ाइल सिर्फ एक ज़िप फ़ाइल है जिसमें प्रोग्राम की कक्षाएं, संसाधन, आदि और कुछ मेटाडेटा शामिल हैं। आप इसे एक साथ देखने के लिए कैसे निकाल सकते हैं।
इसलिए मैं unzip
कमांड का उपयोग कर रहा हूं जो याद रखना और उपयोग करना आसान है।
unzip -l <jar-file-name>.jar
उदाहरण के लिए, यदि आप नाम के साथ एक जार फ़ाइल है test.jar
तो unzip -l test.jar
जार फ़ाइल की सभी सामग्री सूची जाएगा।
यद्यपि अन्य सभी उत्तर महान हैं, लेकिन उनमें से अधिकांश में, आपको कुछ सॉफ़्टवेयर जैसे 7 zip
या JDK
कुछ अन्य ग्रहण उपकरण का उपयोग करना होगा, जबकि इसके लिए आपको इनमें से किसी भी बड़े s / w की आवश्यकता नहीं है और यह लिनक्स में डिफ़ॉल्ट रूप से आता है। और मैक तो इसके बहुत हल्के और उपयोग करने के लिए आसान है ।
आप भी इस्तेमाल कर सकते हैं zipinfo <your jar file>
। अगर आपका OS इसका समर्थन करता है।
एक आईडीई में एक परियोजना में जार जोड़कर, आप आमतौर पर तरीकों और क्षेत्र के नाम देख सकते हैं, लेकिन विस्तृत कार्यान्वयन नहीं। नेटबीन्स इसे कर सकते हैं, एक्लिप्स शायद, इंटेलीज शायद, आदि। आप आईडीई के भीतर जार संरचना को सीधे ब्राउज़ कर सकते हैं।
सामग्री को देखने जैसी किसी भी चीज़ के लिए, आप इसका उपयोग कर सकते हैं:
jar tvf jarfile.jar
स्रोत कोड तक पहुंचने के लिए, आप एक डिकंपाइलर का उपयोग करेंगे जैसे कि JAD या इसका एक दृश्य या कोई अन्य डिकम्पॉइलर। यदि कोड बाधित है, तो ...
टॉम हॉकिन उत्तर का विस्तार करते हुए, आप वांछित वर्ग या फ़ाइलों को फ़िल्टर करने के लिए लिस्टिंग को पाइप कर सकते हैं:
jar tf my-fat-jar-file.jar | grep filename
यह बाश / zsh और सिमिलर पर काम करना चाहिए, या ईमेक का एस्केल करना चाहिए।
अतिरिक्त जानकारी: https://docs.oracle.com/javase/tutorial/deployment/jar/view.html
jar -tvf file_name.jar
ऊपर केवल फाइलों के नाम प्रिंट होंगे ।
फ़ाइलों की सामग्री को देखने के लिए, आप एक फ़ोल्डर में फ़ाइलों को निकाल सकते हैं :
jar -xvf file_name.jar
यह जार फ़ाइल को अनज़िप करेगा और सामग्री को उसी निर्देशिका में रखेगा जहाँ आप इसे चला रहे हैं।
या विंडोज का नाम .jar फ़ाइल में .zip और फिर आप जार फ़ाइल की सामग्री को निकालने और देखने के लिए अनज़िप कर सकते हैं। जैसा कि जार आंतरिक रूप से एक ज़िप फ़ाइल है।
WinRar का उपयोग करें । यह बरकरार तरीके से आपके लिए फ़ोल्डर संरचना खोल देगा। पथों को संरक्षित करते हुए, संपादन-संग्रह की अनुमति भी देता है।
Afterall, JAR फ़ाइल केवल ज़िप संग्रह है।
यदि आप अंदर के व्हाट्सएप को देखना पसंद करते हैं, तो नीचे दिए पहले विकल्प के रूप में नाम बदलें।
F2 & Rename to jarfile.zip
// किसी भी unzipper का उपयोग करें ...
jar tvf jarfile.jar
jar tf jarfile.jar
अगर मैं सही तरीके से समझूं, तो आप केवल कक्षाएं ही नहीं बल्कि तरीके, गुण आदि भी देखना चाहते हैं। एकमात्र उपकरण जो मुझे पता है कि वह कर सकता है वह है ग्रहण - यदि आप प्रोजेक्टपथ को एक जार जोड़ते हैं, तो आप सामान्य पैकेज एक्सप्लोरर का उपयोग करके इसकी कक्षाओं को विधियों और गुणों के साथ ब्राउज़ करने में सक्षम होंगे।
वैसे भी, यह एक अच्छा स्टैंडअलोन जावा टूल के लिए एक अच्छा विचार है
जद कलंकी है और अब कायम नहीं है। मैंने "Java Decompiler" पर स्विच किया है , जिसमें एक चालाक UI है और नई भाषा सुविधाओं के लिए समर्थन है।
हालांकि, मैंने जो भी डिकंपाइलर इस्तेमाल किया है, वह कोड में चलता है, यह सफलतापूर्वक डिकम्पाइल नहीं होता है। उन लोगों के लिए, यह मानक JDK उपकरण, javap द्वारा उत्पादित disassembled Java बाइट कोड को समझने में मदद करता है ।
ठीक है, एक जार-फ़ाइल सिर्फ एक ज़िप-फाइल है, इसलिए यदि आप इसे (अपने पसंदीदा अनजिपिंग उपयोगिता के साथ) अनज़िप करते हैं, तो आपको सभी फाइलें अंदर मिल जाती हैं।
यदि आप विधियों को देखने के लिए वर्ग फ़ाइलों के अंदर देखना चाहते हैं, तो आपको उसके लिए एक उपकरण की आवश्यकता होगी। जैसा कि फील्हो का उल्लेख है, एक्लिप्स (डिफ़ॉल्ट रूप से) ऐसा करने में सक्षम है, और मुझे लगता है कि अधिकांश जावा आईडीई इसके लिए सक्षम हैं।
ग्रहण में 3.4 करते हैं
यदि स्रोत कोड देखना भी एक समस्या है, तो एक नया प्रश्न खोलें।
जार-फ़ाइल स्तर पर नेविगेशन के लिए (एक ज़िप फ़ाइल के रूप में) मैं 7zip का उपयोग करता हूं जो बहुत अच्छी तरह से काम करता है, और प्रविष्टियों को देखने और संपादित करने की अनुमति देता है जो शूटिंग के लिए बहुत अच्छा है।
ऐसा करने का एक तरीका "पैकेज एक्सप्लोरर" में परिप्रेक्ष्य को खोलना है। ऐसा करने से आप अपने जार की संरचना को कक्षा के विवरण के साथ देख सकते हैं। इसके लिए पैकेज एक्सप्लोरर की मदद से अपने प्रोजेक्ट में लाइब्रेरी फोल्डर की जाँच करें।
विंडो >> शो व्यू >> अन्य >> जावा >> पैकेज एक्सप्लोरर
एक और तरीका है, आप जारप्लग को एक ग्रहण प्लगइन के रूप में उपयोग कर सकते हैं। यह ग्रहण / स्प्रिंग्स स्रोत में काम करता है
आप इन दिनों सबसे विघटन उपयोगिताओं के साथ उन्हें खोल सकते हैं, फिर डीजे जावा डेकोम्पाइलर जैसा कुछ प्राप्त करें यदि आप स्रोत को देखना चाहते हैं।
Bndtools ग्रहण के लिए एक मुफ्त JAR दर्शक प्लगइन प्रदान करता है।
ग्रहण अपडेट साइट जोड़ें और केवल दर्शक स्थापित करें।
मेरी आवश्यकता जार के अंदर एक फ़ाइल (एक संपत्ति फ़ाइल की तरह) की सामग्री को देखने के लिए थी, वास्तव में जार को निकाले बिना। अगर कोई भी मेरी तरह इस सूत्र तक पहुँचता है, तो इस आदेश को आजमाएँ
unzip -p myjar.jar myfile.txt
इसने मेरे लिए अच्छा काम किया!
मुझे लगता है कि Java Decomplier आपका सबसे अच्छा विकल्प है जिसे आप यहाँ से डाउनलोड कर सकते हैं: http://jd.benow.ca/
मुझे JAR ब्राउज़र पसंद है , इसका एक सरल इंटरफ़ेस है जहाँ आप कई JAR को ब्राउज़ कर सकते हैं, और एक साथ कई JAR में विशिष्ट वर्ग की खोज कर सकते हैं।
यह जार एक्सप्लोरर काफी अच्छा है।
तीन डिकम्पॉइलर प्रकारों का समर्थन करता है: जेडी, प्रोसीओन और फ़र्नफ़्लावर।
किसी भी जावा संग्रह में फ़ाइलों और डुप्लिकेट को खोजने की अनुमति देता है।
इसके अलावा उपयोगकर्ता डी एंड डी फाइलों द्वारा जार को संशोधित कर सकते हैं और कुछ गैर-वर्ग फ़ाइलों को संपादित कर सकते हैं।
मैक पर जारज़िला है
मैं JarExplorer या JarVisualizer का उपयोग करता हूं ।
आप जारनविगेटर को जार फ़ाइल की सामग्री को देखने और खोजने का प्रयास कर सकते हैं।
इसके अलावा आप Luyten - एक खुला स्रोत जावा Decompiler गुई का उपयोग कर सकते हैं