'जावा', 'जावव, और' जाव्स 'में अंतर


184

बीच क्या अंतर है java, javawऔर javaws?

मैंने पाया कि ज्यादातर जावा का उपयोग विंडोज के तहत किया जाता है javaw


2
ऐसा इसलिए है क्योंकि जब भी आप के साथ कोई प्रोग्राम शुरू करते हैं, तो अग्रभूमि में एक वास्तविक टर्मिनल (जिसे "टर्मिनल" ... भी नहीं कहा जाना चाहिए) शुरू करने की यह कष्टप्रद आदत है java -cp ...। जैसा कि लगभग कोई नहीं चाहता है, javawउस कष्टप्रद खिड़की को गायब करने का विकल्प है।
मैथ्यू

जवाबों:


212

इसके लिए दस्तावेज देखें:

  • javaकमांड 1 / javawकमांड 2
    1. javaउपकरण एक जावा अनुप्रयोग की शुरूआत। यह एक जावा रनटाइम वातावरण शुरू करके, एक निर्दिष्ट वर्ग लोड करके, और उस कक्षा की mainविधि को लागू करके करता है ।
    2. javawआदेश के समान है javaकि साथ छोड़कर, javawवहाँ कोई जुड़ा हुआ है कंसोल विंडो। javawजब आप कमांड प्रॉम्प्ट विंडो प्रकट नहीं करना चाहते हैं तो उपयोग करें
  • javawsकमांड , " जावा वेब स्टार्ट कमांड"

    javawsआदेश की शुरूआत जावा वेब प्रारंभ, जावा नेटवर्क के संदर्भ कार्यान्वयन प्रोटोकॉल (JNLP) का शुभारंभ है। जावा वेब स्टार्ट एक नेटवर्क पर होस्ट किए गए जावा एप्लिकेशन / एप्लेट को लॉन्च करता है।

    यदि एक JNLP फ़ाइल निर्दिष्ट है, तो JNLP फ़ाइल में निर्दिष्ट javawsजावा एप्लिकेशन / एप्लेट को लॉन्च करेगा। लांचर कि मौजूदा रिलीज में समर्थन कर रहे विकल्पों में से एक सेट है। हालाँकि, भविष्य के रिलीज़ में विकल्प हटाए जा सकते हैं।

    javaws

    JDK 9 के रिलीज़ नोट भी देखें अपकमिंग एपीआई, फीचर्स और विकल्प :

    जावा तैनाती टेक्नोलॉजीज पदावनत कर रहे हैं और एक भविष्य के रिलीज में हटा दिया जाएगा
    जावा एप्लेट और WebStart कार्यक्षमता, एप्लेट एपीआई, Java प्लग-इन, जावा एप्लेट व्यूअर, JNLP और जावा वेब प्रारंभ सहित, सहित javawsउपकरण , सभी कर रहे हैं JDK में पदावनत 9 और भविष्य के रिलीज में हटा दिया जाएगा।


69

जावा: जावा एप्लिकेशन निष्पादक जो आउटपुट / त्रुटियों को प्रदर्शित करने के लिए कंसोल के साथ जुड़ा हुआ है

javaw: ( Java windowed ) एप्लिकेशन निष्पादक कंसोल से संबद्ध नहीं है। इसलिए आउटपुट / त्रुटियों का कोई प्रदर्शन नहीं। इसका उपयोग टेक्स्ट फ़ाइलों में आउटपुट / त्रुटियों को चुपचाप धकेलने के लिए किया जा सकता है। यह ज्यादातर GUI- आधारित एप्लिकेशन लॉन्च करने के लिए उपयोग किया जाता है।

वितरित वेब अनुप्रयोगों को डाउनलोड करने और चलाने के लिए javaws: ( Java web start )। फिर, कोई कंसोल संबद्ध नहीं है।

सभी JRE का हिस्सा हैं और एक ही JVM का उपयोग करते हैं।


इसलिए अगर मैंने JRE स्थापित किया है, तो मेरे पेट में javawहोना चाहिए? (ऐसा नहीं है)
15

@endolith, Windows पर जावा इंस्टॉलेशन, मेरे अनुभव में, PATH वैरिएबल में कुछ भी नहीं जोड़ता है। यदि आपने केवल JRE स्थापित किया है, तो आपको संभवतः PREH में JRE / बिन निर्देशिका को मैन्युअल रूप से जोड़ना होगा; यदि आपने JRE और JDK स्थापित किया है, तो आप JDK / bin को PATH के बजाय जोड़ देंगे।
mcduffee

9

java.exe कंसोल के साथ जुड़ा हुआ है, जबकि javaw.exe में ऐसी कोई संगति नहीं है। इसलिए, जब java.exe चलाया जाता है, तो यह स्वचालित रूप से एक कमांड प्रॉम्प्ट विंडो खोलता है जहां आउटपुट और एरर स्ट्रीम दिखाई जाती हैं।


6

से http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.user.aix32.60%2Fuser%2Fjava.html :

Javaw कमांड java के समान है, सिवाय इसके कि javaw में कोई संबद्ध कंसोल विंडो नहीं है। जब आप कमांड प्रॉम्प्ट विंडो प्रदर्शित नहीं करना चाहते हैं तो javaw का उपयोग करें। यदि यह विफल रहता है तो जावा लॉन्चर त्रुटि सूचना के साथ एक विंडो प्रदर्शित करता है।

और javaws जावा वेब स्टार्ट एप्लिकेशन, एप्लेट्स या इस तरह के कुछ के लिए है, मुझे संदेह होगा।


लिंक टूट गया है: "अनुरोधित पृष्ठ मौजूद नहीं है या स्थानांतरित हो सकता है।"
पीटर मोर्टेंसन

1

मैंने जाँच की है कि आउटपुट पुनर्निर्देशन के साथ काम करता है javaw:

javaw -cp ... mypath.MyClass ... arguments 1>log.txt 2>err.txt

इसका मतलब है, अगर जावा एप्लिकेशन System.out या System.err के माध्यम से कुछ भी प्रिंट करता है, तो यह उन फाइलों को लिखा जाता है, जैसे कि जावा (बिना w) का उपयोग किए । विशेष रूप से शुरू करने पर java, JRE त्रुटि आउटपुट पाइप पर आरंभिक त्रुटियां (कक्षा नहीं मिली) लिख सकता है। इस संबंध में, त्रुटियों के बारे में जानना आवश्यक है। अगर मुझे किसी भी मामले में कंसोल पुनर्निर्देशन का उपयोग करने का सुझाव दिया javawजाता है।

इसके विपरीत यदि आप उपयोग करते हैं

start java .... 1>log.txt 2>err.txt

Windows कंसोल के साथ startआदेश, सांत्वना उत्पादन पुनर्निर्देशन करता नहीं के साथ काम javaहै और न ही साथ javaw

स्पष्टीकरण ऐसा क्यों है: मुझे लगता है कि javawओएस में एक आंतरिक प्रक्रिया खुलती है (पर्याप्त java.lang.Process वर्ग का उपयोग करके), और इस प्रक्रिया में एक ज्ञात आउटपुट पुनर्निर्देशन स्थानांतरित करता है। यदि कमांड लाइन पर कोई पुनर्निर्देशन नहीं दिया जाता है, तो कुछ भी पुनर्निर्देशित नहीं किया जाता है और आंतरिक प्रारंभ प्रक्रिया के लिए javawकोई कंसोल आउटपुट नहीं है। Java.lang.Process के लिए व्यवहार समान है। वर्चुअल मशीन इस आंतरिक सुविधा का javawभी उपयोग कर सकती है।

यदि आप 'स्टार्ट' का उपयोग करते हैं, तो विंडोज कंसोल विंडोज को स्टार्ट करने के बाद कमांड को निष्पादित करने के लिए एक नई प्रक्रिया बनाता है, लेकिन यह तंत्र प्रारंभ की गई उप प्रक्रिया के लिए दिए गए पुनर्निर्देशन का उपयोग नहीं करता है, दुर्भाग्य से।

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