जावा में जार और युद्ध के बीच अंतर


462

.jarएक .warफ़ाइल के बीच अंतर क्या है ?
क्या यह केवल फ़ाइल एक्सटेंशन है या कुछ और है?

जवाबों:


387

से जावा सुझाव: कान जार और युद्ध फ़ाइलों के बीच अंतर :

ये फ़ाइलें केवल जावा जार टूल का उपयोग करके ज़िपित फाइलें हैं। ये फाइलें विभिन्न उद्देश्यों के लिए बनाई गई हैं। यहाँ इन फ़ाइलों का वर्णन है:

  • .jar फ़ाइलें: .jar फ़ाइलों में लाइब्रेरी, संसाधन और एक्सेसरीज़ फ़ाइलें होती हैं जैसे प्रॉपर्टी फ़ाइल्स।

  • .war फाइलें: युद्ध फाइल में वेब एप्लिकेशन होता है जिसे किसी भी सर्वलेट / जेपी कंटेनर पर तैनात किया जा सकता है। .War फ़ाइल में jsp, html, javascript और अन्य फ़ाइलें हैं जो वेब अनुप्रयोगों के विकास के लिए आवश्यक हैं।


आधिकारिक सूर्य / ओरेकल विवरण:


विकिपीडिया लेख:


10
Jsp और अतिरिक्त वेब एप्लिकेशन फ़ाइलों के रूप में संदेह क्यों है कि जार फ़ाइल में क्यों नहीं हो सकता।
इमैनुएल एंजेलो। आरसी

@ EmmanuelAngelo.R वे कर सकते हैं - एक जार फ़ाइल सिर्फ एक ज़िप फ़ाइल है। यदि यह कुछ भी उपयोगी होगा तो एक और मामला है, जो उस कोड पर निर्भर करता है जिसे आप जार फ़ाइल का उपयोग करना चाहते हैं। एक दिलचस्प उदाहरण के रूप में जेनकिंस कंटीन्यूअस इंटीग्रेशन सर्वर को WAR फ़ाइल के रूप में वितरित किया जाता है, जिसे "जावा -जर" के साथ चलाया जा सकता है। देखें wiki.jenkins-ci.org/display/JENKINS/... जानकारी के लिए।
थोरबजोरन रावन एंडरसन


40

आप एक वेब अनुप्रयोग संग्रह (WAR) नामक पैकेज में J2EE एप्लिकेशन के लिए वेब घटक जोड़ते हैं, जो जावा क्लास पुस्तकालयों के लिए उपयोग किए जाने वाले पैकेज के समान JAR है। एक WAR में आमतौर पर वेब घटकों के अलावा अन्य संसाधन शामिल होते हैं, जिनमें शामिल हैं:

  • सर्वर-साइड उपयोगिता वर्ग (डेटाबेस बीन्स, शॉपिंग कार्ट, और इसी तरह)।
  • स्थैतिक वेब संसाधन (HTML, छवि और ध्वनि फ़ाइलें, और इसी तरह)
  • क्लाइंट-साइड क्लासेस (एप्लेट्स और यूटिलिटी क्लासेस)

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

( स्रोत )

तो .war एक .jar है, लेकिन इसमें वेब एप्लिकेशन घटक शामिल हैं और इसे एक विशिष्ट संरचना के अनुसार रखा गया है। .War को एक वेब एप्लिकेशन सर्वर जैसे कि Tomcat या Jetty या JBoss या Glassfish जैसे Java EE सर्वर पर तैनात करने के लिए डिज़ाइन किया गया है।


1
तो क्या इसका मतलब यह है कि यदि आप एक सर्वर ऐप बना रहे हैं जो सिर्फ सॉकेट्स का उपयोग करता है और इसमें कोई UI नहीं है तो इसे युद्ध फाइल के रूप में पैकेज करने की कोई आवश्यकता नहीं है?
बॉट_बॉट

वास्तव में अब मैं थोड़ा और पढ़ रहा हूं मुझे टॉमकैट की आवश्यकता नहीं है, मैं बस जार को सर्वर पर निर्यात कर सकता हूं और इसे सीधे वहां से चला सकता हूं।
बॉट_बॉट


15

एक .warफ़ाइल एक वेब एप्लीकेशन आर्काइव है जो एक एप्लिकेशन सर्वर के अंदर चलता है जबकि एक .jarजावा एप्लीकेशन आर्काइव है जो उपयोगकर्ता की मशीन पर डेस्कटॉप एप्लिकेशन चलाता है।


13
दूसरा कथन आवश्यक रूप से सत्य नहीं है। जार भी एक एम्बेडेड वेब सर्वर शुरू कर सकता है, जैसे स्प्रिंग बूट।
भंवर

4
यहां तक ​​कि यह कथन पूरी तरह से सत्य नहीं है। एक जार भी कोड का एक पुस्तकालय हो सकता है जिसका उपयोग अन्य अनुप्रयोगों द्वारा किया जा सकता है। दूसरे शब्दों में इसे चलाने के लिए एक मुख्य वर्ग भी नहीं हो सकता है।
केविन वेलकर

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

@ केविन वेलकर, "पूरी तरह से नहीं", मैं कहूंगा "सभी सत्य नहीं" जैसा कि व्हर्लविन ने सिर्फ एक अपवाद का उल्लेख किया है, जो पूरी तरह से सच है, है ना?
अलेक्सई मार्टियनोव

12

एक युद्ध फ़ाइल एक विशेष जार फ़ाइल है जिसका उपयोग किसी वेब एप्लिकेशन को पैकेज करने के लिए किया जाता है ताकि इसे एप्लिकेशन सर्वर पर तैनात करना आसान हो सके। युद्ध फ़ाइल की सामग्री को एक परिभाषित संरचना का पालन करना चाहिए।


10

.jar और .war दोनों ज़िपित संग्रहीत फ़ाइलें हैं। दोनों के पास वैकल्पिक META-INF / MANIFEST.MF मेनिफ़ेस्ट फ़ाइल हो सकती है, जो संस्करण की तरह सूचनात्मक जानकारी रखती है, और JVM के लिए classpath और मुख्य-वर्ग जैसी अनुदेशात्मक विशेषताएँ जो इसे निष्पादित करेगी।

.war फ़ाइल - वेब एप्लीकेशन आर्काइव का उद्देश्य एक 'सर्वलेट कंटेनर' के अंदर निष्पादित होना है और इसमें अन्य जार फाइलें (WEB-INF / lib निर्देशिका में) संकलित कक्षाएं (WEB-INF / कक्षाएं (सर्वलेट भी वहां जाता है)) .jsp शामिल हो सकते हैं। फाइलें, फाइलें आदि सभी WAR सामग्री जो एक स्व-निहित मॉड्यूल बनाने के लिए है।


5

मूल रूप से दोनों ने अभिलेखागार को संकुचित कर दिया। युद्ध का उपयोग एक विशिष्ट निर्देशिका संरचना के साथ वेब एप्लिकेशन के लिए किया जाता है।


4

युद्ध और जार जावा फाइलों के लिए अभिलेखागार हैं। युद्ध वेब संग्रह है और वे वेब सर्वर पर चल रहे हैं। जार जावा संग्रह है।


1

युद्ध -

जावा-आधारित वेब एप्लिकेशन वितरित करें। एक WAR में JAR फ़ाइल के समान फ़ाइल संरचना होती है, जो एक एकल संपीड़ित फ़ाइल होती है जिसमें कई फ़ाइलें होती हैं जिनके अंदर बंडल होती है।

जार -

.Jar फ़ाइलों में लायब्रेरीज़, संसाधन और गुण फ़ाइलें जैसे फ़ाइल फ़ाइलें होती हैं।

WAR फ़ाइलों का उपयोग JSPs, सर्वलेट्स, जावा क्लास फाइलें, XML फाइलें, जावास्क्रिप्ट लाइब्रेरी, JAR लाइब्रेरी, स्टेटिक वेब पेज और एप्लिकेशन को चलाने के लिए आवश्यक किसी भी अन्य संसाधनों को संयोजित करने के लिए किया जाता है।


0

जार : - जार में केवल .class युद्ध होते हैं : - युद्ध में html, js, css और .class होते हैं। jsp और सर्विंग पेज भी होते हैं।


0

JAR फाइलें लाइब्रेरी, प्लगइन या किसी भी तरह के एप्लिकेशन के रूप में उपयोग करने के लिए कई फाइलों को पैकेज करने की अनुमति देती हैं। दूसरी ओर, WAR फ़ाइलों का उपयोग केवल वेब अनुप्रयोगों के लिए किया जाता है।

JAR को किसी भी वांछित संरचना के साथ बनाया जा सकता है। इसके विपरीत, WAR में WEB-INF और META-INF निर्देशिकाओं के साथ एक पूर्वनिर्धारित संरचना है।

एक JAR फ़ाइल जावा रनटाइम एनवायरनमेंट (JRE) को एक ही अनुरोध में कक्षाओं और संबंधित संसाधनों सहित पूरे एप्लिकेशन को तैनात करने की अनुमति देती है। दूसरी ओर, एक WAR फ़ाइल वेब एप्लिकेशन को आसानी से परीक्षण और तैनात करने की अनुमति देती है।


0

एक JAR फ़ाइल एक्सटेंशन .jar है और कमांड प्रॉम्प्ट से जार कमांड के साथ बनाया जाता है (जैसे javac कमांड निष्पादित होता है)। आम तौर पर, एक JAR फ़ाइल में जावा से संबंधित संसाधन जैसे पुस्तकालय, वर्ग आदि होते हैं। JAR फ़ाइल winzip फ़ाइल की तरह है सिवाय इसके कि जार फाइलें प्लेटफ़ॉर्म स्वतंत्र हैं।

एक WAR फाइल केवल एक JAR फाइल है लेकिन इसमें केवल वेब संबंधित जावा फाइलें जैसे कि सर्वलेट्स, JSP, HTML शामिल हैं।

एक WAR फ़ाइल को निष्पादित करने के लिए, एक वेब सर्वर या वेब कंटेनर की आवश्यकता होती है, उदाहरण के लिए, Tomcat या Weblogic या Websphere। JAR फ़ाइल निष्पादित करने के लिए, सरल JDK पर्याप्त है।

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