.Jar फ़ाइल की सामग्री देखना


226

एक जार फ़ाइल के अंदर वर्गों, विधियों, गुणों आदि को देखने का सबसे आसान तरीका क्या होगा? मैं जावा के लिए बहुत उपयोगी लुत्ज रोएडर .NET रिफ्लेक्टर के बराबर कुछ देख रहा हूं


12
आप उत्तर क्यों नहीं स्वीकार करते?
सांग्युन ली

4
@HughLee यह पूछने वाले ने 8 साल पहले पूछा था । इसीलिए उत्तर अपटेड होने के बाद एक स्वचालित स्वीकृति की आवश्यकता होती है, 100 अपटेड IMO
कोलोब कैन्यन

@KolobCanyon सच है, लेकिन वे शीर्ष रेटेड जवाब उसी दिन प्रस्तुत किया गया था जब यह पूछा गया था
प्रणव ए।

1
इसका उत्तर s https://superuser.com/a/808938/1045397 से आता है। आप इसे vim vim file_name.jar
byte mamba

जवाबों:


280

JDK का उपयोग करके, jar -tfजार में फ़ाइलों को सूचीबद्ध करेगा। javapआपको एक विशेष वर्ग फ़ाइल से अधिक विवरण देगा।


3
@salvob आपको हाइफन की आवश्यकता नहीं है क्योंकि यह tarविकल्प के साथ अनिवार्य होने के बाद लेता है ।
टॉम हॉन्टिन -

2
FYI करें, सिस्टम कमांड के रूप में C:\Program Files\Java\jdk<version>\binउपयोग करने से पहले आपको अपने सिस्टम या उपयोगकर्ता PATH परिवेश चर में जोड़ना पड़ सकता है jar। (जहां <संस्करण> आपका jdk संस्करण-बिल्ड नंबर है। इसे जांचें C:\Program Files\Java)
Tezra

1
javap उदाहरण: javap -classpath test.jar com.yourpackage.HelloWorld
mPrinC

एक गैर-वर्ग फ़ाइलों (जैसे प्रकट) की सामग्री को देखने के लिए आप कुछ इस तरह करना चाहेंगे: tar -xOzf test.jarjar tf test.jar | grep MANIFEST
mPrinC

55

मैं आमतौर पर उन्हें 7-ज़िप के साथ खोलता हूं ... यह कम से कम पैकेज और कक्षाएं और संसाधन देखने की अनुमति देता है।
क्या मुझे विधियों या क्षेत्रों को देखने की आवश्यकता है, मैं जद का उपयोग करूंगा लेकिन निश्चित रूप से, (अच्छे) JavaDoc पर भरोसा करना बेहतर है ...

अब, कहीं SO पर कुछ ग्रहण प्लग-इन का उल्लेख किया गया था, जिसमें यह पता लगाने के लिए कि जार फ़ाइल एक कक्षा में स्थित है, शायद वे अधिक कर सकते हैं (यानी आपने जो अनुरोध किया था)।

[संपादित करें] SO थ्रेड का संदर्भ। जो नहीं पूछा गया है, लेकिन किसी भी तरह से संबंधित है, इस प्रकार उपयोगी है: जावा: मुझे कैसे पता चलेगा कि किस जार फ़ाइल को वर्ग नाम दिया गया है?


URL पार्क होने पर Jad साइट का लिंक हटा दिया गया है। यह अभी भी web.archive.org/web/20080106184313/http://www.kpdus.com/… पर पाया जा सकता है, लेकिन Jad आज भी पुराना है, वैसे भी।
फीलो

35

मैं व्यक्तिगत रूप से JD-GUI का उपयोग करता हूं। यह एक नि: शुल्क 'डिकंपॉइलर' है, क्योंकि यह आपको कक्षाओं में स्रोत कोड, कक्षाएं और ऑब्जेक्ट्स को देखने की अनुमति देता है, साथ ही बाईं ओर एक ट्री मेनू में फ़ाइल संरचना को देखता है। हालाँकि, यह आपको कक्षाओं को सीधे संशोधित करने की अनुमति नहीं देता है।

JD-GUI की वेबसाइट: http://jd.benow.ca/


यह क्रॉस-प्लेटफ़ॉर्म पर काम करता है, जबकि 7-ज़िप का उल्लेख एक और उत्तर में विंडोज-विशिष्ट है।
ब्रैड कपिट

मैंने OS X पर आर्काइव यूटिलिटी का इस्तेमाल किया , ठीक काम किया। अधिकांश (संयुक्त राष्ट्र) जिप उपयोगिताओं को, प्लेटफार्म की परवाह किए बिना काम करना चाहिए।
ग्रीनऑनलाइन

23

मामले में किसी को यह पहले से ही पता नहीं है, एक JAR फ़ाइल सिर्फ एक ज़िप फ़ाइल है जिसमें प्रोग्राम की कक्षाएं, संसाधन, आदि और कुछ मेटाडेटा शामिल हैं। आप इसे एक साथ देखने के लिए कैसे निकाल सकते हैं।

इसलिए मैं unzipकमांड का उपयोग कर रहा हूं जो याद रखना और उपयोग करना आसान है।

unzip -l <jar-file-name>.jar

उदाहरण के लिए, यदि आप नाम के साथ एक जार फ़ाइल है test.jarतो unzip -l test.jarजार फ़ाइल की सभी सामग्री सूची जाएगा।

यद्यपि अन्य सभी उत्तर महान हैं, लेकिन उनमें से अधिकांश में, आपको कुछ सॉफ़्टवेयर जैसे 7 zipया JDKकुछ अन्य ग्रहण उपकरण का उपयोग करना होगा, जबकि इसके लिए आपको इनमें से किसी भी बड़े s / w की आवश्यकता नहीं है और यह लिनक्स में डिफ़ॉल्ट रूप से आता है। और मैक तो इसके बहुत हल्के और उपयोग करने के लिए आसान है

आप भी इस्तेमाल कर सकते हैं zipinfo <your jar file>। अगर आपका OS इसका समर्थन करता है।


1
@ सुझाव के लिए धन्यवाद। इसे मेरे उत्तर में जोड़ देंगे
Opster Elasticsearch Ninja

1
यदि फ़ाइल एक्सप्लोरर ज़िप का समर्थन करता है, तो जार का नाम बदलकर .zip भी काम करता है (उदाहरण के लिए खिड़कियों पर)
Rayene

16

विधि के नाम, फ़ील्ड, आदि।

एक आईडीई में एक परियोजना में जार जोड़कर, आप आमतौर पर तरीकों और क्षेत्र के नाम देख सकते हैं, लेकिन विस्तृत कार्यान्वयन नहीं। नेटबीन्स इसे कर सकते हैं, एक्लिप्स शायद, इंटेलीज शायद, आदि। आप आईडीई के भीतर जार संरचना को सीधे ब्राउज़ कर सकते हैं।

बस सामग्री

सामग्री को देखने जैसी किसी भी चीज़ के लिए, आप इसका उपयोग कर सकते हैं:

  • jar tvf jarfile.jar
  • winzip या कोई भी ज़िप उपकरण

स्रोत कोड

स्रोत कोड तक पहुंचने के लिए, आप एक डिकंपाइलर का उपयोग करेंगे जैसे कि JAD या इसका एक दृश्य या कोई अन्य डिकम्पॉइलर। यदि कोड बाधित है, तो ...


10

टॉम हॉकिन उत्तर का विस्तार करते हुए, आप वांछित वर्ग या फ़ाइलों को फ़िल्टर करने के लिए लिस्टिंग को पाइप कर सकते हैं:

jar tf my-fat-jar-file.jar | grep filename

यह बाश / zsh और सिमिलर पर काम करना चाहिए, या ईमेक का एस्केल करना चाहिए।

अतिरिक्त जानकारी: https://docs.oracle.com/javase/tutorial/deployment/jar/view.html


7
jar -tvf file_name.jar

ऊपर केवल फाइलों के नाम प्रिंट होंगे ।

फ़ाइलों की सामग्री को देखने के लिए, आप एक फ़ोल्डर में फ़ाइलों को निकाल सकते हैं :

jar -xvf file_name.jar

यह जार फ़ाइल को अनज़िप करेगा और सामग्री को उसी निर्देशिका में रखेगा जहाँ आप इसे चला रहे हैं।

या विंडोज का नाम .jar फ़ाइल में .zip और फिर आप जार फ़ाइल की सामग्री को निकालने और देखने के लिए अनज़िप कर सकते हैं। जैसा कि जार आंतरिक रूप से एक ज़िप फ़ाइल है।


6

WinRar का उपयोग करें । यह बरकरार तरीके से आपके लिए फ़ोल्डर संरचना खोल देगा। पथों को संरक्षित करते हुए, संपादन-संग्रह की अनुमति भी देता है।

Afterall, JAR फ़ाइल केवल ज़िप संग्रह है।


6

यदि आप अंदर के व्हाट्सएप को देखना पसंद करते हैं, तो नीचे दिए पहले विकल्प के रूप में नाम बदलें।

  1. F2 & Rename to jarfile.zip // किसी भी unzipper का उपयोग करें ...

  2. jar tvf jarfile.jar

  3. jar tf jarfile.jar


5

अगर मैं सही तरीके से समझूं, तो आप केवल कक्षाएं ही नहीं बल्कि तरीके, गुण आदि भी देखना चाहते हैं। एकमात्र उपकरण जो मुझे पता है कि वह कर सकता है वह है ग्रहण - यदि आप प्रोजेक्टपथ को एक जार जोड़ते हैं, तो आप सामान्य पैकेज एक्सप्लोरर का उपयोग करके इसकी कक्षाओं को विधियों और गुणों के साथ ब्राउज़ करने में सक्षम होंगे।

वैसे भी, यह एक अच्छा स्टैंडअलोन जावा टूल के लिए एक अच्छा विचार है


ध्यान दें कि जार को "संदर्भित लाइब्रेरी" फ़ोल्डर में होना चाहिए, न कि केवल "लिबास"। और अपाचे कॉमन्स लाइब्रेरी के मामले में, आप source.jar को ब्राउज़ नहीं करते हैं, आप मूल को ब्राउज़ करते हैं और फिर उस स्रोत को संलग्न करते हैं जब ग्रहण पूछता है।
नौमेनन

4

जद कलंकी है और अब कायम नहीं है। मैंने "Java Decompiler" पर स्विच किया है , जिसमें एक चालाक UI है और नई भाषा सुविधाओं के लिए समर्थन है।

हालांकि, मैंने जो भी डिकंपाइलर इस्तेमाल किया है, वह कोड में चलता है, यह सफलतापूर्वक डिकम्पाइल नहीं होता है। उन लोगों के लिए, यह मानक JDK उपकरण, javap द्वारा उत्पादित disassembled Java बाइट कोड को समझने में मदद करता है ।


3

ठीक है, एक जार-फ़ाइल सिर्फ एक ज़िप-फाइल है, इसलिए यदि आप इसे (अपने पसंदीदा अनजिपिंग उपयोगिता के साथ) अनज़िप करते हैं, तो आपको सभी फाइलें अंदर मिल जाती हैं।

यदि आप विधियों को देखने के लिए वर्ग फ़ाइलों के अंदर देखना चाहते हैं, तो आपको उसके लिए एक उपकरण की आवश्यकता होगी। जैसा कि फील्हो का उल्लेख है, एक्लिप्स (डिफ़ॉल्ट रूप से) ऐसा करने में सक्षम है, और मुझे लगता है कि अधिकांश जावा आईडीई इसके लिए सक्षम हैं।


3

ग्रहण में 3.4 करते हैं

  1. जावा प्रोजेक्ट में जार फ़ाइल को प्रश्न में खींचें। जार फ़ाइल की एक प्रति दिखाई देती है।
  2. जार फ़ाइल पर राइट क्लिक करें, और "बिल्ड पाथ" चुनें -> "बिल्ड पाथ में जोड़ें"।
  3. जार फ़ाइल को "संदर्भित लाइब्रेरी" नोड में ले जाया जाता है, जहां इसे प्रोजेक्ट एक्सप्लोरर फलक में खोला और नेविगेट किया जा सकता है।

यदि स्रोत कोड देखना भी एक समस्या है, तो एक नया प्रश्न खोलें।

जार-फ़ाइल स्तर पर नेविगेशन के लिए (एक ज़िप फ़ाइल के रूप में) मैं 7zip का उपयोग करता हूं जो बहुत अच्छी तरह से काम करता है, और प्रविष्टियों को देखने और संपादित करने की अनुमति देता है जो शूटिंग के लिए बहुत अच्छा है।


3

ऐसा करने का एक तरीका "पैकेज एक्सप्लोरर" में परिप्रेक्ष्य को खोलना है। ऐसा करने से आप अपने जार की संरचना को कक्षा के विवरण के साथ देख सकते हैं। इसके लिए पैकेज एक्सप्लोरर की मदद से अपने प्रोजेक्ट में लाइब्रेरी फोल्डर की जाँच करें।

विंडो >> शो व्यू >> अन्य >> जावा >> पैकेज एक्सप्लोरर

एक और तरीका है, आप जारप्लग को एक ग्रहण प्लगइन के रूप में उपयोग कर सकते हैं। यह ग्रहण / स्प्रिंग्स स्रोत में काम करता है

http://jar-plug.sourceforge.net/


3

यदि आप विंडो में हैं और पावरशेल का उपयोग कर रहे हैं और आप जार में एक फाइल की तलाश कर रहे हैं जो आप कर सकते हैं:

jar -tf .\[JAR_NAME] | where {$_ -match "[FILENAME]"}



2

मेरी आवश्यकता जार के अंदर एक फ़ाइल (एक संपत्ति फ़ाइल की तरह) की सामग्री को देखने के लिए थी, वास्तव में जार को निकाले बिना। अगर कोई भी मेरी तरह इस सूत्र तक पहुँचता है, तो इस आदेश को आजमाएँ

unzip -p myjar.jar myfile.txt

इसने मेरे लिए अच्छा काम किया!



1

मुझे JAR ब्राउज़र पसंद है , इसका एक सरल इंटरफ़ेस है जहाँ आप कई JAR को ब्राउज़ कर सकते हैं, और एक साथ कई JAR में विशिष्ट वर्ग की खोज कर सकते हैं।


1

ग्रहण 3.4 JDT

यह सबसे तेज़ तरीका नहीं है क्योंकि आपको इसे अपने ग्रहण में खींचना होगा। लेकिन आपके पास फुल जावा क्लास ब्राउज़िंग होगी, यहां तक ​​कि विघटित सक्षम होने के साथ।


1

मैंने विंडोज़ में "WinZip के साथ खोलें" में डिफ़ॉल्ट क्रिया सेट की है। इससे जार को अभिलेखागार के रूप में प्रबंधित करना आसान हो जाता है। आप फ़ाइलों को मैन्युअल रूप से जोड़ / निकाल सकते हैं।


1

यह जार एक्सप्लोरर काफी अच्छा है।
तीन डिकम्पॉइलर प्रकारों का समर्थन करता है: जेडी, प्रोसीओन और फ़र्नफ़्लावर।
किसी भी जावा संग्रह में फ़ाइलों और डुप्लिकेट को खोजने की अनुमति देता है।
इसके अलावा उपयोगकर्ता डी एंड डी फाइलों द्वारा जार को संशोधित कर सकते हैं और कुछ गैर-वर्ग फ़ाइलों को संपादित कर सकते हैं। यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें


कृपया उत्तर के रूप में कुछ टूल या लाइब्रेरी पोस्ट न करें। कम से कम यह प्रदर्शित करें कि यह उत्तर में समस्या को कैसे हल करता है।
दास_गीक

0

आप JarSpy की कोशिश कर सकते हैं । इसका एक आईडिया प्लगइन संस्करण है जिसका मैं उपयोग करता हूं।


0

आपकी आईडीई को भी इसका समर्थन करना चाहिए। मेरी IDE (SlickeEdit) इसे "टैग लाइब्रेरी" कहती है। बस जार फ़ाइल के लिए एक टैग लाइब्रेरी जोड़ें, और आपको एक श्रेणीबद्ध तरीके से कक्षाओं और विधियों को ब्राउज़ करने में सक्षम होना चाहिए।






हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.