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तो बिना किसी पर्यावरण के लिए आरोपित हैंfilegrep
> 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