A jar
केवल एक कंटेनर है। यह एक फ़ाइल संग्रह है tar
। हालांकि jar
इसके भीतर मौजूद दिलचस्प जानकारी मेटा-इन पदानुक्रम हो सकती है, लेकिन इसमें सामग्री के साथ पुरानी कक्षाओं को निर्दिष्ट करने का कोई दायित्व नहीं है। उसके लिए, किसी को class
फाइलों की जांच करनी चाहिए ।
जैसा कि पीटर लॉरी ने मूल प्रश्न के बारे में टिप्पणी में उल्लेख किया है, आप जरूरी नहीं जान सकते हैं कि JDK रिलीज़ ने किसी दिए गए class
फ़ाइल का निर्माण किया है , लेकिन आप class
एक में निहित फ़ाइल के बाइट कोड क्लास संस्करण का पता लगा सकते हैं jar
।
हां, यह थोथा बेकार है, लेकिन पहला कदम एक या एक से अधिक कक्षाओं को निकालना है jar
। उदाहरण के लिए:
$ jar xf log4j-1.2.15.jar
लिनक्स पर, मैक ओएस एक्स या विंडोज विथ साइग्विन स्थापित, फ़ाइल (1) कमांड क्लास संस्करण को जानता है।
$ file ./org/apache/log4j/Appender.class
./org/apache/log4j/Appender.class: compiled Java class data, version 45.3
या वैकल्पिक javap
रूप से, JDK से @ jikes.thunderbolt के रूप में उपयुक्त रूप से बताते हैं:
$ javap -v ./org/apache/log4j/Appender.class | grep major
major version: 45
और अगर आप या Windows
तो बिना किसी पर्यावरण के लिए आरोपित हैंfile
grep
> javap -v ./org/apache/log4j/Appender.class | findstr major
major version: 45
एफडब्ल्यूआईडब्ल्यू, मैं javap
एक संपूर्ण class
फ़ाइल के बारे में बताऊंगा जो किसी मूल फ़ाइल से पूछे गए प्रश्न के बारे में अधिक बताएगा ।
वैसे भी, एक अलग वर्ग संस्करण, उदाहरण के लिए:
$ file ~/bin/classes/P.class
/home/dave/bin/classes/P.class: compiled Java class data, version 50.0
वर्ग संस्करण प्रमुख संख्या निम्नलिखित जावा JDK संस्करणों से मेल खाती है:
- 45.3 = जावा 1.1
- 46 = जावा 1.2
- 47 = जावा 1.3
- 48 = जावा 1.4
- 49 = जावा 5
- 50 = जावा 6
- 51 = जावा 7
- 52 = जावा 8
- 53 = जावा 9