एक जार फ़ाइल क्या है?
.Jar एक्सटेंशन वाली फाइल एक जावा आर्काइव फाइल होती है जिसमें एक ही फाइल के रूप में कई अलग-अलग एप्लिकेशन संबंधित फाइलें होती हैं। यह फ़ाइल प्रारूप एकाधिक HTTP कनेक्शन बनाने से बचने के द्वारा HTTP लेनदेन के माध्यम से ब्राउज़र में डाउनलोड किए गए जावा एप्लेट को लोड करने की गति को कम करने के लिए बनाया गया था। एक एकल JAR फ़ाइल में Java क्लास फ़ाइलें (.class), images, और sounds हो सकती हैं। JAR फ़ाइल के अंदर अलग-अलग आइटम को उनके मूल को प्रमाणित करने के लिए एप्लिकेशन डेवलपर द्वारा डिजिटल रूप से हस्ताक्षरित किया जा सकता है। JAR फाइलें नियमित रूप से कार्यात्मक एपीआई बनाने के लिए उपयोग की जाती हैं जिनमें उस एपीआई से संबंधित विशिष्ट कार्यक्षमता होती है।
जार फ़ाइल स्वरूप
JAR फाइलें लोकप्रिय ZIP फाइल फॉर्मेट पर आधारित होती हैं, जो अपनी व्यक्तिगत सामग्री फाइलों को एक ही फाइल में संग्रहीत करती हैं। JAR फ़ाइल स्वरूप संपीड़न का समर्थन करता है, जिसके परिणामस्वरूप डाउनलोड करने के लिए फ़ाइल का आकार छोटा होता है और इसलिए डाउनलोड समय में और सुधार होता है। Oracle द्वारा JAR फ़ाइल विनिर्देश artilce JAR फ़ाइलों की आंतरिक विशिष्टताओं के बारे में पूरी जानकारी देता है।
प्रकट फ़ाइल
जब एक JAR फ़ाइल बनाई जाती है, तो इसके अंदर एक मेनिफ़ेस्ट फ़ाइल अपने आप बन जाती है जिसमें JAR फ़ाइल की सामग्री के बारे में मेटाडेटा जानकारी होती है। यह फ़ाइल JAR फ़ाइल के अंदर पैक की गई सामग्री को दिखाती है। एक विशिष्ट मेनिफेस्ट फ़ाइल निम्नानुसार दिखती है जो JAR फ़ाइल में शामिल फ़ोल्डर्स और कक्षाओं को दिखाती है।
META-INF/
META-INF/MANIFEST.MF
pack/
pack/class1.class
pack/class2.class
..
..
प्रकट विनिर्देशों
प्रकट विनिर्देशों को Oracle द्वारा निम्नानुसार परिभाषित किया गया है।
‘मेनिफेस्ट-फाइल’: मेन-सेक्शन न्यूलाइन *इंडिविजुअल-सेक्शन
मुख्य-अनुभाग
: संस्करण-जानकारी नई पंक्ति *मुख्य-विशेषता
संस्करण-जानकारी
: प्रकट-संस्करण: संस्करण-संख्या
संस्करण-संख्या
: अंक+{.अंक+}*
मुख्य-विशेषता
: (कोई वैध मुख्य विशेषता) न्यूलाइन
‘इंडिविजुअल-सेक्शन’: नाम: वैल्यू न्यूलाइन *पेरेंट्री-एट्रिब्यूट
पेरेंट्री-एट्रिब्यूट
: (कोई वैध पेरेंट्री एट्रिब्यूट) न्यूलाइन
न्यूलाइन
: सीआर एलएफ | वामो | सीआर (एलएफ द्वारा पीछा नहीं किया गया)
digit
: {0-9}
निष्पादन योग्य जार
JAR फ़ाइलों में एक एप्लिकेशन भी शामिल हो सकता है जिसे Microsoft Windows ऑपरेटिंग सिस्टम पर किसी अन्य एप्लिकेशन के समान जावा वर्चुअल मशीन (JVM) द्वारा निष्पादित किया जा सकता है। इस मामले में, JVM को एप्लिकेशन के प्रवेश बिंदु के बारे में जानने की आवश्यकता है, जो कि सार्वजनिक स्थैतिक शून्य मुख्य विधि वाला कोई भी वर्ग है। मैनिफ़ेस्ट फ़ाइल ऐसे वर्ग की पहचान मेन-क्लास
हेडर के साथ निम्न प्रारूप में करती है:
Main-Class: com.example.MyClassName