बीच क्या अंतर है java
, javaw
और javaws
?
मैंने पाया कि ज्यादातर जावा का उपयोग विंडोज के तहत किया जाता है javaw
।
बीच क्या अंतर है java
, javaw
और javaws
?
मैंने पाया कि ज्यादातर जावा का उपयोग विंडोज के तहत किया जाता है javaw
।
जवाबों:
इसके लिए दस्तावेज देखें:
java
कमांड 1 / javaw
कमांड 2
java
उपकरण एक जावा अनुप्रयोग की शुरूआत। यह एक जावा रनटाइम वातावरण शुरू करके, एक निर्दिष्ट वर्ग लोड करके, और उस कक्षा कीmain
विधि को लागू करके करता है ।javaw
आदेश के समान हैjava
कि साथ छोड़कर,javaw
वहाँ कोई जुड़ा हुआ है कंसोल विंडो।javaw
जब आप कमांड प्रॉम्प्ट विंडो प्रकट नहीं करना चाहते हैं तो उपयोग करें ।
javaws
कमांड , " जावा वेब स्टार्ट कमांड"
javaws
आदेश की शुरूआत जावा वेब प्रारंभ, जावा नेटवर्क के संदर्भ कार्यान्वयन प्रोटोकॉल (JNLP) का शुभारंभ है। जावा वेब स्टार्ट एक नेटवर्क पर होस्ट किए गए जावा एप्लिकेशन / एप्लेट को लॉन्च करता है।
यदि एक JNLP फ़ाइल निर्दिष्ट है, तो JNLP फ़ाइल में निर्दिष्टjavaws
जावा एप्लिकेशन / एप्लेट को लॉन्च करेगा। लांचर कि मौजूदा रिलीज में समर्थन कर रहे विकल्पों में से एक सेट है। हालाँकि, भविष्य के रिलीज़ में विकल्प हटाए जा सकते हैं।javaws
JDK 9 के रिलीज़ नोट भी देखें अपकमिंग एपीआई, फीचर्स और विकल्प :
जावा तैनाती टेक्नोलॉजीज पदावनत कर रहे हैं और एक भविष्य के रिलीज में हटा दिया जाएगा
जावा एप्लेट और WebStart कार्यक्षमता, एप्लेट एपीआई, Java प्लग-इन, जावा एप्लेट व्यूअर, JNLP और जावा वेब प्रारंभ सहित, सहितjavaws
उपकरण , सभी कर रहे हैं JDK में पदावनत 9 और भविष्य के रिलीज में हटा दिया जाएगा।
जावा: जावा एप्लिकेशन निष्पादक जो आउटपुट / त्रुटियों को प्रदर्शित करने के लिए कंसोल के साथ जुड़ा हुआ है
javaw: ( Java windowed ) एप्लिकेशन निष्पादक कंसोल से संबद्ध नहीं है। इसलिए आउटपुट / त्रुटियों का कोई प्रदर्शन नहीं। इसका उपयोग टेक्स्ट फ़ाइलों में आउटपुट / त्रुटियों को चुपचाप धकेलने के लिए किया जा सकता है। यह ज्यादातर GUI- आधारित एप्लिकेशन लॉन्च करने के लिए उपयोग किया जाता है।
वितरित वेब अनुप्रयोगों को डाउनलोड करने और चलाने के लिए javaws: ( Java web start )। फिर, कोई कंसोल संबद्ध नहीं है।
सभी JRE का हिस्सा हैं और एक ही JVM का उपयोग करते हैं।
javaw
होना चाहिए? (ऐसा नहीं है)
java.exe कंसोल के साथ जुड़ा हुआ है, जबकि javaw.exe में ऐसी कोई संगति नहीं है। इसलिए, जब java.exe चलाया जाता है, तो यह स्वचालित रूप से एक कमांड प्रॉम्प्ट विंडो खोलता है जहां आउटपुट और एरर स्ट्रीम दिखाई जाती हैं।
Javaw कमांड java के समान है, सिवाय इसके कि javaw में कोई संबद्ध कंसोल विंडो नहीं है। जब आप कमांड प्रॉम्प्ट विंडो प्रदर्शित नहीं करना चाहते हैं तो javaw का उपयोग करें। यदि यह विफल रहता है तो जावा लॉन्चर त्रुटि सूचना के साथ एक विंडो प्रदर्शित करता है।
और javaws जावा वेब स्टार्ट एप्लिकेशन, एप्लेट्स या इस तरह के कुछ के लिए है, मुझे संदेह होगा।
मैंने जाँच की है कि आउटपुट पुनर्निर्देशन के साथ काम करता है 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
भी उपयोग कर सकती है।
यदि आप 'स्टार्ट' का उपयोग करते हैं, तो विंडोज कंसोल विंडोज को स्टार्ट करने के बाद कमांड को निष्पादित करने के लिए एक नई प्रक्रिया बनाता है, लेकिन यह तंत्र प्रारंभ की गई उप प्रक्रिया के लिए दिए गए पुनर्निर्देशन का उपयोग नहीं करता है, दुर्भाग्य से।
java -cp ...
। जैसा कि लगभग कोई नहीं चाहता है,javaw
उस कष्टप्रद खिड़की को गायब करने का विकल्प है।