2011-10-24 11 views
32

मेरे पास एक वेब प्रोग्राम है जहां मैं चाहता हूं कि उपयोगकर्ता .war फ़ाइल आयात करने में सक्षम हो और मैं .war फ़ाइल से कुछ फ़ाइलों को निकाल सकूं। मुझे दो क्लास लाइब्रेरी मिली हैं: java.util.zip.* और java.util.jar.*। जो मैं समझता हूं, एक WAR फ़ाइल एक विशेष JAR फ़ाइल है जो एक विशेष ज़िप फ़ाइल है। तो java.util.jar का उपयोग करना बेहतर होगा? यदि ज़िप और जेएआर फाइलें काफी समान हैं तो दो अलग-अलग पुस्तकालयों की आवश्यकता क्यों है?जावा में .war फ़ाइलों को निकालने के लिए कैसे? ज़िप बनाम JAR

+0

क्या आप युद्ध फ़ाइल के अंदर फाइलों के साथ क्या करेंगे:

एक war फ़ाइल यह, बस मुद्दा निम्न आदेश jar प्रोग्राम का उपयोग निकालने के लिए सिर्फ एक jar फ़ाइल है? –

उत्तर

17

यदि आप JarFile एपीआई देखते हैं तो आप देखेंगे कि यह ZipFile कक्षा का उप-वर्ग है।

जार-विशिष्ट कक्षाएं ज्यादातर जार-विशिष्ट कार्यक्षमता जोड़ती हैं, जैसे मैनिफेस्ट फ़ाइल विशेषताओं के लिए प्रत्यक्ष समर्थन और इसी तरह।

यह ओओपी "कार्रवाई में" है; चूंकि जार फ़ाइलें ज़िप फ़ाइलें हैं, जार कक्षाएं ज़िप कार्यक्षमता का उपयोग कर सकती हैं और अतिरिक्त उपयोगिता प्रदान कर सकती हैं।

+3

सही और स्वीकृत उत्तरों पर डाउनवॉट्स की सराहना की जाती है। –

0

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

java.util.jar मूल रूप से java.util.zip को बहुत कम अतिरिक्त ओवरहेड के साथ अतिरिक्त कार्यक्षमता जोड़ता है। Java.util.jar पोस्टिंग में एक सहायक बनें, आदि ... और इसका इस्तेमाल करें।

0

जार वर्ग/पैकेज विशिष्ट जार फ़ाइल तंत्र के लिए है जहां कुछ मामलों में जार फ़ाइलों द्वारा उपयोग किया जाने वाला एक मैनिफेस्ट है।

ज़िप फ़ाइल वर्ग/पैकेज किसी भी संपीड़ित फ़ाइलों को संभालता है जिसमें जार फ़ाइलें शामिल होती हैं, जो संकुचित फ़ाइल का एक प्रकार है।

इस प्रकार जार कक्षाएं ज़िप पैकेज कक्षाओं का विस्तार करती हैं।

81

युद्ध फ़ाइल, बस एक जार फ़ाइल है यह निकालने के लिए, बस समस्या निम्न जार आदेश -

jar -xvf yourWARfileName.war 

तो जार आदेश नहीं मिला है, जो कभी कभी विंडोज कमांड प्रॉम्प्ट में होता है, तो पूर्ण पथ निर्दिष्ट यानी मेरे मामले में यह

c:\java\jdk-1.7.0\bin\jar -xvf my-file.war 
+0

मैंने इस कमांड का इस्तेमाल किया और extwar .war फ़ाइल .. लेकिन ये सभी बिन फ़ोल्डर में जाते हैं .. क्या आप स्थान निकालने के लिए कमांड पेस्ट कर सकते हैं –

+0

http://stackoverflow.com/questions/15830952/extracting-jar-to- निर्दिष्ट - निर्देशिका में –

+1

जावा में, ओपी से पूछा। –

8

बस .jar में .war नाम बदलने और Winrar (या किसी अन्य संग्रह प्रबंधक) का उपयोग कर इसे अनज़िप है।

1

यदि आप लिनक्स या उबंटू का उपयोग कर रहे हैं तो आप सीधे .war फ़ाइल से डेटा निकाल सकते हैं।

jar -xvf yourWARfileName.war 
संबंधित मुद्दे