विंडोज़ 10 पर एक जार फ़ाइल कैसे चलाएं। कमांड लाइन पर जावा के साथ काम करना

बच्चों के लिए एंटीपीयरेटिक्स एक बाल रोग विशेषज्ञ द्वारा निर्धारित किया जाता है। लेकिन बुखार के लिए आपातकालीन स्थितियां होती हैं जब बच्चे को तुरंत दवा देने की आवश्यकता होती है। तब माता-पिता जिम्मेदारी लेते हैं और ज्वरनाशक दवाओं का उपयोग करते हैं। शिशुओं को क्या देने की अनुमति है? आप बड़े बच्चों में तापमान कैसे कम कर सकते हैं? कौन सी दवाएं सबसे सुरक्षित हैं?

कई नौसिखिए प्रोग्रामर को निम्नलिखित प्रश्नों का सामना करना पड़ता है: "मैंने आईडीई में अपना आवेदन बनाया है, अब मैं इसे आईडीई के बाहर कमांड लाइन से कैसे काम करूं?"। एक अन्य प्रश्न जो उत्पन्न हो सकता है, "मैं इस एप्लिकेशन को अन्य उपयोगकर्ताओं को एक ही समय में संपूर्ण आईडीई दिए बिना कैसे वितरित कर सकता हूं?"।

इन सवालों के जवाब अपेक्षाकृत सरल हैं, लेकिन हमेशा स्पष्ट नहीं होते हैं। पर इस दस्तावेज़वितरण और परिनियोजन के लिए आवेदन तैयार करने के लिए आईडीई का उपयोग करने की मूल बातें प्रदर्शित करके उनका उत्तर देता है। इसके अलावा, यह दस्तावेज़ ऐसी जानकारी प्रदान करता है जो प्रोग्रामर के सिस्टम को स्थापित करने के लिए आवश्यक हो सकती है (या जिसे एप्लिकेशन के उपयोगकर्ताओं को संप्रेषित करने की आवश्यकता होगी)। हम किसी एप्लिकेशन को परिनियोजित करने के लिए कई अलग-अलग दृष्टिकोण दिखाएंगे, जिससे उपयोगकर्ता इसे एक्सेस कर सकेंगे:

  • एप्लिकेशन के जावा आर्काइव (JAR) फ़ाइल पर डबल-क्लिक करें।
  • कमांड लाइन से किसी एप्लिकेशन को कॉल करना।
  • स्क्रिप्ट फ़ाइल से किसी एप्लिकेशन को कॉल करना।
  • जावा वेब स्टार्ट का उपयोग करना।

इस ट्यूटोरियल के लिए नीचे दी गई तालिका में सूचीबद्ध सॉफ़्टवेयर और सामग्री की आवश्यकता है।

एक निष्पादन योग्य JAR फ़ाइल बनाना

ट्यूटोरियल का यह भाग आपको दिखाता है कि आप IDE में पुनर्वितरण योग्य एप्लिकेशन कैसे बना सकते हैं और फिर IDE के बाहर एप्लिकेशन चला सकते हैं। हम इस एप्लिकेशन को एक निष्पादन योग्य JAR फ़ाइल में पैकेज करते हैं।

JAR फ़ाइल एक संग्रह फ़ाइल है जिसमें फ़ाइलें और फ़ोल्डर हो सकते हैं। JAR फ़ाइलें ज़िप फ़ाइलों के समान हैं, लेकिन JAR फ़ाइलों में अतिरिक्त विशेषताएँ हो सकती हैं जो जावा अनुप्रयोगों को वितरित करते समय उपयोगी होती हैं। इन विशेषताओं में JAR फ़ाइलों के डिजिटल हस्ताक्षर, वैकल्पिक संपीड़न, क्रॉस-प्लेटफ़ॉर्म संगतता, आदि शामिल हैं।

इस अभ्यास में, हम एक IDE प्रोजेक्ट बनाते हैं और फिर प्रोजेक्ट में दो पूर्व-लिखित जावा स्रोत फ़ाइलें डालते हैं। फिर हम कक्षाओं को संकलित करेंगे और एक निष्पादन योग्य JAR फ़ाइल बनाएंगे। उसके बाद, हम देखेंगे कि IDE के बाहर JAR फ़ाइलों को कैसे चलाया जाता है।

इस ट्यूटोरियल में उपयोग की जाने वाली कक्षाएं GNU grep उपयोगिता के कार्यों को लागू करती हैं, जिसका उपयोग टेक्स्ट फाइलों में टेक्स्ट या रेगुलर एक्सप्रेशन पैटर्न की खोज के लिए किया जा सकता है। इस प्रोजेक्ट में एप्लिकेशन का कमांड लाइन संस्करण और उपयोग करने वाला संस्करण दोनों शामिल हैं जीयूआई, जो आपको एप्लिकेशन चलाने के विभिन्न तरीकों पर एक नज़र डालेगा।

मौजूदा स्रोत कोड फ़ाइलों का उपयोग करके एक परियोजना का निर्माण

  1. अन्य उपयोगकर्ताओं को एप्लिकेशन वितरित करना

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

    टिप्पणी।यदि आपका आवेदन JDK में शामिल पुस्तकालयों के अलावा अन्य अतिरिक्त पुस्तकालयों पर निर्भर करता है, तो आपको उन्हें अपने वितरण में शामिल करना होगा (इस उदाहरण पर लागू नहीं होता है)। जब IDE में एप्लिकेशन विकसित किया जाता है, तो इन पुस्तकालयों के सापेक्ष पथ JAR मेनिफेस्ट फ़ाइल के क्लासपाथ प्रविष्टि में जोड़े जाते हैं। यदि ये अतिरिक्त पुस्तकालय स्टार्टअप पर निर्दिष्ट वर्ग पथ (अर्थात सापेक्ष पथ) में नहीं मिलते हैं, तो अनुप्रयोग प्रारंभ नहीं होगा।
    सृजन करना ज़िप संग्रह JAR फ़ाइल और लाइब्रेरी युक्त, और फिर इसे अपलोड करें ज़िप फ़ाइलउपयोगकर्ता। उपयोगकर्ताओं को इस ज़िप संग्रह को अनपैक करने का निर्देश दें ताकि JAR फ़ाइल और लाइब्रेरी JAR फ़ाइलें एक ही फ़ोल्डर में हों। एप्लिकेशन जार फ़ाइल चलाएँ।

    जावा एप्लिकेशन लॉन्च करना

    इस अभ्यास का उद्देश्य कमांड लाइन से किसी एप्लिकेशन को चलाने के कुछ तरीकों को प्रदर्शित करना है।

    यह अभ्यास दिखाता है कि आप निम्नलिखित दो तरीकों से जावा एप्लिकेशन कैसे शुरू कर सकते हैं:

    • कमांड लाइन से जावा कमांड चला रहा है।
    • JAR फ़ाइल में किसी वर्ग को कॉल करने के लिए स्क्रिप्ट का उपयोग करना।

    कमांड लाइन से एप्लिकेशन लॉन्च करना

    एप्लिकेशन को जावा कमांड का उपयोग करके कमांड लाइन से लॉन्च किया जा सकता है। यदि आप एक निष्पादन योग्य JAR फ़ाइल निष्पादित करना चाहते हैं, तो कमांड के -jar विकल्प का उपयोग करें।

    उदाहरण के लिए, OtherGrep एप्लिकेशन को चलाने के लिए, निम्न कार्य करें:

    1. एक टर्मिनल विंडो खोलें। माइक्रोसॉफ्ट विंडोज सिस्टम पर, यह "स्टार्ट" बटन पर क्लिक करके और "रन ..." का चयन करके, "ओपन:" फील्ड में सीएमडी टाइप करके और "ओके" बटन पर क्लिक करके किया जाता है।
    2. निर्देशिका पर जाएँ PROJECT_HOME/dist (सीडी कमांड का उपयोग करके)।
    3. मुख्य अनुप्रयोग वर्ग चलाने के लिए निम्न पंक्ति दर्ज करें: java -jar OtherGrep.jar

    यदि आप इन निर्देशों का पालन करते हैं और एप्लिकेशन प्रारंभ नहीं होता है, तो आपको संभवतः निम्न में से कोई एक कार्य करना चाहिए:

    स्क्रिप्ट से एप्लिकेशन लॉन्च करना

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

    पहला कदम एप्लिकेशन में मुख्य वर्ग को कक्षा के कंसोल संस्करण में बदलना और JAR फ़ाइल का पुनर्निर्माण करना है:

    1. IDE की प्रोजेक्ट विंडो में, प्रोजेक्ट नोड (AnotherGrep) पर राइट-क्लिक करें और गुण चुनें।
    2. रन नोड का चयन करें और मेन क्लास प्रॉपर्टी को दूसरे ग्रेप में बदलें। ग्रेप (अन्य ग्रेप.एक्सग्रीप से)। प्रोजेक्ट गुण विंडो को बंद करने के लिए ओके बटन पर क्लिक करें।
    3. प्रोजेक्ट नोड पर फिर से राइट-क्लिक करें और क्लीन एंड बिल्ड प्रोजेक्ट चुनें।

    जब ये चरण पूरे हो जाते हैं, तो JAR फ़ाइल को फिर से बनाया जाएगा और JAR फ़ाइल के मेनिफेस्ट में मुख्य-श्रेणी की विशेषता अन्य grep.Grep को इंगित करेगी।

    बैश स्क्रिप्ट - यूनिक्स और लिनक्स चलाने वाले कंप्यूटरों के लिए

    उस फ़ोल्डर में जहां फ़ाइल की सामग्री निकाली गई थी, आप grep.sh नाम की एक बैश स्क्रिप्ट पा सकते हैं। आइए इसे देखें:

    #!/बिन/बैश जावा -जार जिला/अन्यग्रेप.जर [ईमेल संरक्षित]

    पहली पंक्ति निर्दिष्ट करती है कि इस स्क्रिप्ट की व्याख्या करने के लिए किस कमांड दुभाषिया का उपयोग करना है। दूसरा आईडीई द्वारा बनाई गई JAR फ़ाइल को फ़ोल्डर में निष्पादित करता है PROJECT_HOME/जिला. [ईमेल संरक्षित]बस स्क्रिप्ट को दिए गए सभी तर्कों की प्रतिलिपि बनाता है, प्रत्येक को उद्धरणों में संलग्न करता है।

    यह स्क्रिप्ट मानती है कि जावा बायनेरिज़ PATH पर्यावरण चर का हिस्सा हैं। अगर यह स्क्रिप्ट आपके कंप्यूटर पर काम नहीं करती है, तो देखें।

    बैश दुभाषिया की स्क्रिप्टिंग के बारे में अधिक जानकारी के लिए, देखें।

    विंडोज कंप्यूटर के लिए .bat स्क्रिप्ट

    Microsoft Windows कंप्यूटर पर, एक बार में बैच फ़ाइलों में अधिकतम नौ तर्क पारित किए जा सकते हैं। यदि नौ से अधिक तर्क हैं, तो JAR फ़ाइल को कई बार निष्पादित करने की आवश्यकता होगी।

    इसके लिए स्क्रिप्ट इस तरह दिख सकती है:

    @echo off set jarpath="dist/AnotherGrep.jar" set pattern="%1" shift:loop if "%1" == "" goto:allprocessed set files=%1 %2 %3 %4 %5 %6 %% 8% 9% 9 जावा-जार% जारपथ%% पैटर्न%% फाइलें%%% के लिए (0 1 2 3 4 5 6 7 8) गोटो को शिफ्ट करें: लूप: सभी संसाधित

    यदि आप इसे क्रिया में देखना चाहते हैं, तो यह स्क्रिप्ट उस फ़ोल्डर में grep.bat नाम से पाई जा सकती है जहां संग्रह की सामग्री निकाली गई थी।

    बैच फ़ाइल के अंदर% के रूप में नौ तर्क दिए गए हैं , कहाँ पे के भीतर एक मूल्य होना चाहिए<0-9>. %0 स्क्रिप्ट नाम के लिए आरक्षित है।

    आप देख सकते हैं कि एक बार में (एक लूप में) प्रोग्राम में केवल नौ तर्क पारित किए जाते हैं। कथन के लिए अगले लूप के लिए तैयार करने के लिए तर्कों को केवल नौ से बदल देता है। लूप समाप्त हो जाता है जब एक खाली फ़ाइल तर्क if कथन द्वारा पाया जाता है (यह इंगित करता है कि संसाधित करने के लिए कोई नई फ़ाइल नहीं है)।

    बैच स्क्रिप्टिंग के बारे में अधिक जानकारी .

    जावा वेब स्टार्ट के लिए किसी एप्लिकेशन की पैकेजिंग करना

    जावा वेब स्टार्ट एक ऐसी तकनीक है जिसका उपयोग एक क्लिक के साथ वेब ब्राउज़र से जावा एप्लिकेशन लॉन्च करने के लिए किया जाता है। Java Web Start के साथ परिनियोजन के लिए पैकेजिंग अनुप्रयोगों के विवरण के लिए NetBeans IDE में Java Web Start को सक्षम करना देखें। यहां, हम केवल जावा वेब स्टार्ट का उपयोग करके किसी एप्लिकेशन को परिनियोजित करने योग्य बनाने के लिए आवश्यक चरणों का एक संक्षिप्त विवरण प्रदान करते हैं।

    1. प्रोजेक्ट विंडो में प्रोजेक्ट नोड पर राइट-क्लिक करें और गुण चुनें।
    2. प्रोजेक्ट गुण विंडो के वेब प्रारंभ टैब पर, वेब प्रारंभ सक्षम करें चेक बॉक्स का चयन करें।
    3. कोडबेस ड्रॉपडाउन से स्थानीय निष्पादन का चयन करें क्योंकि हम केवल स्थानीय निष्पादन का परीक्षण करेंगे।
      अन्य सभी डिफ़ॉल्ट सेटिंग्स रखें और ओके पर क्लिक करें।
    4. प्रोजेक्ट नोड पर राइट-क्लिक करें और क्लीन एंड बिल्ड प्रोजेक्ट चुनें।
      यह IDE कमांड पहले से संकलित सभी फाइलों को हटा देगा और एप्लिकेशन को फिर से संकलित करेगा और नई सेटिंग्स के साथ प्रोजेक्ट का निर्माण करेगा।
    5. IDE के बाहर, फ़ोल्डर खोलें PROJECT_HOME/dist , फिर अपने ब्राउज़र में launch.html फ़ाइल खोलें।
      एक परीक्षण दिखाई देगा। एचटीएमएल पेजलॉन्च बटन के साथ।
    6. ऐप खोलने के लिए लॉन्च बटन दबाएं।
      आप देख पाएंगे कि जावा लोड हो गया है और एप्लिकेशन चल रहा है।

      टिप्पणी।कुछ ब्राउज़र पहले उपयोगकर्ताओं को जावा डाउनलोड पेज पर रीडायरेक्ट करते हैं।

    JAR फ़ाइल संघों को निर्दिष्ट करना

    अधिकांश कंप्यूटरों पर, एक निष्पादन योग्य JAR फ़ाइल को केवल डबल-क्लिक करके निष्पादित किया जा सकता है। यदि JAR फ़ाइल पर डबल-क्लिक करने पर कुछ नहीं होता है, तो यह निम्न दो कारणों में से एक के कारण हो सकता है:

    • JAR फ़ाइल प्रकार इस कंप्यूटर पर Java रनटाइम एनवायरनमेंट (JRE) से संबद्ध नहीं है।

      यदि JAR फ़ाइल प्रकार JRE से संबद्ध है, तो उस फ़ाइल का प्रतिनिधित्व करने वाले चिह्न में Java लोगो शामिल होना चाहिए।

    • JAR फ़ाइल प्रकार को JRE में मैप किया जाता है, लेकिन -jar विकल्प आइकन पर डबल-क्लिक करने पर JRE को दिए गए कमांड का हिस्सा नहीं होता है।

    टिप्पणी।कभी-कभी JAR फ़ाइल संघों को स्थापित सॉफ़्टवेयर द्वारा स्विच किया जाता है, उदाहरण के लिए, सॉफ़्टवेयरज़िप फ़ाइलों को संसाधित करने के लिए।

    जिस तरह से JAR फ़ाइल प्रकार को जावा लॉन्चर से जोड़ा जा सकता है, वह ऑपरेटिंग सिस्टम पर निर्भर करता है।

    सुनिश्चित करें कि आपके कंप्यूटर पर एक JRE संस्करण स्थापित है। संस्करण 1.4.2 या बाद के संस्करण का उपयोग किया जाना चाहिए। जावा अनुप्रयोगों को उन कंप्यूटरों पर नहीं चलाया जा सकता है जिनमें जावा प्लेटफॉर्म स्थापित नहीं है। (यदि जावा डेवलपमेंट किट (जेडीके) स्थापित है, तो जेआरई भी इसके साथ स्थापित है। हालांकि, यदि प्रोग्राम गैर-प्रोग्रामर को वितरित किया जाता है, तो उपयोगकर्ताओं के पास जेआरई या जेडीके नहीं हो सकता है।)

    • Windows XP पर स्थापित जावा संस्करण"प्रारंभ"> "कंट्रोल पैनल"> ("प्रोग्राम जोड़ें या निकालें") का चयन करके जांच की जा सकती है (उदाहरण के लिए, जावा (टीएम) 6 अपडेट 33 होना चाहिए)।
    • पर विंडोज विस्टाया जावा के 7 स्थापित संस्करण को "प्रारंभ"> "नियंत्रण कक्ष"> ("कार्यक्रम और विशेषताएं") का चयन करके जांचा जा सकता है (उदाहरण के लिए, जावा (टीएम) 6 अपडेट 33 निर्दिष्ट किया जाना चाहिए)।

    यदि आपके कंप्यूटर में जावा प्लेटफॉर्म नहीं है, तो JRE को Java SE डाउनलोड साइट से डाउनलोड किया जा सकता है।

    यदि आपके पास यह पहले से ही आपके कंप्यूटर पर है, लेकिन फ़ाइल संबद्धता काम नहीं करती है, तो Microsoft Windows में JAR फ़ाइल संबद्धता जोड़ने के लिए चरणों का पालन करें:

    1. "प्रारंभ"> "नियंत्रण कक्ष" चुनें।
    2. (केवल विंडोज विस्टा पर लागू होता है)। "कंट्रोल पैनल"> "प्रोग्राम" पर क्लिक करें।

    3. Windows Vista या 7 के लिए, डिफ़ॉल्ट प्रोग्राम पर क्लिक करें और किसी फ़ाइल प्रकार या प्रोटोकॉल को प्रोग्राम के साथ संबद्ध करें चुनें।
    4. (Windows XP में, डायलॉग बॉक्स के विवरण अनुभाग में, प्रोग्राम बदलें पर क्लिक करें।)
    5. प्रोग्राम चयन संवाद बॉक्स में, जावा प्लेटफ़ॉर्म एसई बाइनरी चुनें।
    6. "प्रोग्राम चुनें" डायलॉग बॉक्स से बाहर निकलने के लिए "ओके" बटन पर क्लिक करें।
    7. फ़ोल्डर विकल्प संवाद बॉक्स (विंडोज एक्सपी में) को बंद करने के लिए बंद करें बटन पर क्लिक करें या फ़ाइल प्रकार या प्रोटोकॉल को विशिष्ट प्रोग्राम (विंडोज 7 में) के साथ जोड़ने के लिए संवाद बॉक्स पर क्लिक करें।

    टिप्पणी।यदि JAR फ़ाइलें सिस्टम पर जावा प्लेटफ़ॉर्म SE बाइनरी से संबद्ध हैं, लेकिन डबल-क्लिक करने से अभी भी JAR फ़ाइल लॉन्च नहीं होती है, तो आपको फ़ाइल संबद्धता पर -jar विकल्प निर्दिष्ट करने की आवश्यकता हो सकती है।

    Microsoft Windows XP पर फ़ाइल संबद्धता में -jar विकल्प निर्दिष्ट करने के लिए, इन चरणों का पालन करें:

    1. "प्रारंभ"> "नियंत्रण कक्ष" चुनें।
    2. Windows XP में, "फ़ोल्डर विकल्प" पर डबल-क्लिक करें और "फ़ाइल प्रकार" टैब चुनें।
    3. पंजीकृत फ़ाइल प्रकार सूची में, JAR फ़ाइल चुनें।
    4. संवाद बॉक्स के विवरण अनुभाग में, उन्नत पर क्लिक करें।
    5. फ़ाइल प्रकार गुण संपादित करें संवाद बॉक्स में, संपादित करें पर क्लिक करें...
    6. "एप्लिकेशन जो क्रिया निष्पादित करता है" टेक्स्ट बॉक्स में, जेआरई पथ के अंत में निम्न पंक्ति जोड़ें: -जर "% 1" %* उसके बाद, बॉक्स में निम्न के जैसा टेक्स्ट होना चाहिए: "सी: \ प्रोग्राम फ़ाइलें\Java\jre1.6.0_33\ bin\javaw.exe" -jar "%1" %*
    7. चेंज टाइप एक्शन डायलॉग बॉक्स से बाहर निकलने के लिए ओके पर क्लिक करें।
    8. फ़ाइल प्रकार गुण संपादित करें संवाद बॉक्स से बाहर निकलने के लिए ठीक क्लिक करें।
    9. फ़ोल्डर विकल्प संवाद बॉक्स से बाहर निकलने के लिए बंद करें बटन पर क्लिक करें।

    टिप्पणी। Windows Vista से शुरू होकर, विस्तारित फ़ाइल संघों को RegEdit का उपयोग करके कॉन्फ़िगर किया जा सकता है। अधिक जानकारी के लिए, फ़ाइल प्रकार संवाद का क्या हुआ देखें? .

    UNIX और Linux सिस्टम के लिए, फ़ाइल संघों को बदलने की प्रक्रिया इस बात पर निर्भर करती है कि किस डेस्कटॉप वातावरण (जैसे GNOME या KDE) का उपयोग किया जा रहा है। अपने कार्यक्षेत्र सेटिंग्स पर एक नज़र डालें या कार्यक्षेत्र दस्तावेज़ीकरण पढ़ें।

    पाथ पर्यावरण चर सेट करना

    यदि आपका कंप्यूटर JDK या JRE के स्थान को निर्दिष्ट किए बिना Java क्लास या JAR फ़ाइल को चलाने में असमर्थ है, तो आपको सिस्टम PATH पर्यावरण चर के मान को बदलने की आवश्यकता हो सकती है।

    Microsoft Windows सिस्टम पर चलते समय, PATH चर सेट करने की प्रक्रिया आपके द्वारा उपयोग किए जा रहे Windows के संस्करण पर निर्भर करती है।

    PATH वैरिएबल को इस पर सेट करने के चरण निम्नलिखित हैं: विंडोज सिस्टमएक्सपी:

    1. "प्रारंभ"> "नियंत्रण कक्ष" चुनें और "सिस्टम" पर डबल-क्लिक करें।
    2. सिस्टम गुण संवाद बॉक्स में, उन्नत टैब चुनें।
    3. पर्यावरण चर टैब पर क्लिक करें।
    4. उपयोगकर्ता पर्यावरण चर की सूची में, पथ का चयन करें और संपादित करें बटन पर क्लिक करें।
    5. पथ सूची के अंत में JRE स्थान जोड़ें। सूची में स्थान अर्धविराम (;) द्वारा अलग किए गए हैं।
      उदाहरण के लिए, यदि JRE C:\Program Files\Java\jdk1.6.0_23 में स्थित है, तो PATH चर के अंत में निम्नलिखित जोड़ें: C:\Program Files\Java\jdk1.6.0_23\bin
    6. पर्यावरण चर संवाद बॉक्स से बाहर निकलने के लिए ठीक क्लिक करें, फिर सिस्टम गुण संवाद बॉक्स से बाहर निकलने के लिए ठीक क्लिक करें।

    में काम करते समय ऑपरेटिंग सिस्टम UNIX या Linux, जिस तरह से आप PATH पर्यावरण चर बदलते हैं, वह आपके द्वारा उपयोग किए जा रहे कमांड दुभाषिया प्रोग्राम पर निर्भर करता है। अधिक जानकारी के लिए कमांड दुभाषिया दस्तावेज़ीकरण देखें।

    आगे क्या होगा?

    NetBeans IDE के साथ कार्य करने के बारे में अधिक जानकारी के लिए, NetBeans वेबसाइट देखें।

    दस्तावेज़ में क्लासपाथ प्रबंधन सहित आईडीई में जावा अनुप्रयोग विकास के बारे में अधिक जानकारी उपलब्ध है

अब कोई भी कंसोल में प्रोग्राम नहीं बनाता है। अपने पसंदीदा आईडीई का उपयोग करके, डेवलपर किसी और के कंप्यूटर पर असहज महसूस करता है, जहां यह नहीं है।
चींटी और मावेन के काम को समझने का फैसला करते हुए, मैंने खुद को कंसोल में उनके बिना एप्लिकेशन बनाने में असमर्थ पाया।
इस लेख में, मैंने एक डेमो एप्लिकेशन डिजाइन करने के सभी चरणों को फिट करने की कोशिश की ताकि इंटरनेट पर प्रत्येक कमांड पर मदद की तलाश न हो।

साधारण से लेकर...

प्रत्येक प्रोग्राम आमतौर पर एक अलग निर्देशिका में समाहित होता है। मेरा नियम इस निर्देशिका में कम से कम दो फ़ोल्डर बनाना है: src और bin। पहले में स्रोत कोड होते हैं, दूसरे में संकलन परिणाम होता है। इन फ़ोल्डरों में संकुल के आधार पर एक निर्देशिका संरचना होगी।

एक फ़ाइल

आप इसे अतिरिक्त फ़ोल्डरों के बिना कर सकते हैं।
चलिए फाइल लेते हैं।
01 02 03 04 05 06 07 08 09 पब्लिक क्लास हैलोवर्ल्ड (सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग आर्ग्स) ( System.out.println ("हैलो वर्ल्ड!"); कैलकुलेटर कैल्क = नया कैलकुलेटर (); System.out.println ("2+2="+calc.sum (2,2)); ))
उस निर्देशिका पर जाएं जहां यह फ़ाइल स्थित है और कमांड निष्पादित करें।
javac HelloWorld.java इस फ़ोल्डर में HelloWorld.class फ़ाइल दिखाई देगी। तो कार्यक्रम संकलित है। इसे शुरू करने के लिए
जावा-क्लासपाथ। नमस्ते दुनिया

स्रोतों से बायनेरिज़ को अलग करना

अब हम वही करेंगे, लेकिन निर्देशिकाओं के साथ। आइए एक हैलोवर्ल्ड डायरेक्टरी बनाएं जिसमें दो फोल्डर src और bin हों।
संकलन
javac -d bin src/HelloWorld.java यहां हमने संकेत दिया है कि बायनेरिज़ को एक अलग बिन फ़ोल्डर में सहेजा जाएगा और स्रोतों के साथ भ्रमित नहीं होना चाहिए।

हम लॉन्च
जावा-क्लासपाथ ./बिन हैलोवर्ल्ड

हम पैकेज का उपयोग करते हैं

और फिर, अचानक, कार्यक्रम सिर्फ हैलोवर्ल्ड नहीं रह जाएगा। पैकेजों को एक सार्थक और अद्वितीय नाम दिया जाता है। यह जोड़ देगा यह कार्यक्रमकिसी अन्य प्रोजेक्ट के लिए कोई नामकरण विरोध नहीं है। कुछ लेखों को पढ़ने के बाद, आप सोच सकते हैं कि पैकेज नाम के लिए एक डोमेन की आवश्यकता है। यह सच नहीं है। डोमेन विशिष्टता हासिल करने का एक सुविधाजनक तरीका है। यदि आपके पास अपना डोमेन नहीं है, तो साइट पर एक खाते का उपयोग करें (उदाहरण के लिए, ru.habrahabr.mylogin)। यह अद्वितीय होगा। कृपया ध्यान दें कि पैकेज के नाम लोअर केस में होने चाहिए। और स्पेशल कैरेक्टर के इस्तेमाल से बचें। विभिन्न प्लेटफ़ॉर्म और फ़ाइल सिस्टम के कारण समस्याएँ उत्पन्न होती हैं।

आइए अपनी कक्षा को com.qwertovsky.helloworld नामक पैकेज में रखें। ऐसा करने के लिए, फ़ाइल की शुरुआत में एक पंक्ति जोड़ें
पैकेज com.qwertovsky.helloworld; आइए src निर्देशिका में अतिरिक्त निर्देशिकाएँ बनाएँ ताकि फ़ाइल का पथ इस तरह दिखे: src/com/qwertovsky/helloworld/HelloWorld.java।
संकलन
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java बिन निर्देशिका में स्वचालित रूप से src के समान निर्देशिका संरचना होगी।
हैलोवर्ल्ड "---बिन" "----कॉम" "---qwertovsky " "----helloworld " "---HelloWorld.class "---src "---com "---qwertovsky "-- -helloworld "---HelloWorld.java रन
जावा-क्लासपाथ ./bin com.qwertovsky.helloworld.HelloWorld

यदि प्रोग्राम में कई फाइलें हैं

चलो कार्यक्रम बदलते हैं। तर्क पर ध्यान न दें। वह नहीं है।
हेलोवर्ल्ड.जावा
01 02 03 04 05 06 07 08 09 10 11 12 13 पैकेज com.qwertovsky.helloworld; पब्लिक क्लास हैलोवर्ल्ड (सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग आर्ग्स) (इंट ए = 2; इंट बी = 3; कैलकुलेटर कैल्क = नया कैलकुलेटर (); System.out.println ("हैलो वर्ल्ड!"); System.out.println ( a+"+"+b+"="+calc.sum(a,b)); ) )
कैलकुलेटर.जावा
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 पैकेज com.qwertovsky.helloworld; आयात com.qwertovsky.helloworld.operation.Adder; पब्लिक क्लास कैलकुलेटर (पब्लिक इंट सम (इंट... ए) (एडडर एडर = न्यू एडर (); फॉर (इंट आई: ए) (ऐडर.एड (आई);) रिटर्न एडर.गेटसम ();))
Adder.java
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 पैकेज com.qwertovsky.helloworld.operation; सार्वजनिक वर्ग योजक (निजी int योग; सार्वजनिक योजक () (योग = 0;) सार्वजनिक योजक (int a) (this.sum = a;) सार्वजनिक शून्य जोड़ें (int b) (योग + = b;) सार्वजनिक int getSum () (वापसी राशि;))
संकलन
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java src\com\qwertovsky\helloworld\HelloWorld.java:9: सिंबल सिंबल नहीं मिल सकता: क्लास कैलकुलेटर लोकेशन: क्लास com.qwertovsky.helloworld.HelloWorld कैलकुलेटर कैल्क = नया कैलकुलेटर(); ^ src\com\qwertovsky\helloworld\HelloWorld.java:9: प्रतीक चिह्न नहीं ढूंढ सकता: वर्ग कैलकुलेटर स्थान: वर्ग com.qwertovsky.helloworld.HelloWorld कैलकुलेटर कैल्क = नया कैलकुलेटर (); ^ 2 त्रुटियां त्रुटि इस तथ्य के कारण हुई कि संकलन के लिए उपयोग की जाने वाली कक्षाओं (कैलकुलेटर वर्ग) के स्रोत कोड वाली फाइलें आवश्यक हैं। आपको फ़ाइलों के साथ निर्देशिका को -sourcepath कुंजी का उपयोग करके संकलक को निर्दिष्ट करना होगा।
संकलन
javac -sourcepath ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java रन
java -classpath ./bin com.qwertovsky.helloworld.HelloWorld हैलो वर्ड 2+3=5

यदि आप परिणाम से हैरान हैं

डीबगर लॉन्च करना संभव है। यही जेडीबी के लिए है।
सबसे पहले, हम -g स्विच के साथ संकलित करते हैं ताकि डिबगर में जानकारी हो।
javac -g -sourcepath ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java डीबगर प्रारंभ करें
jdb -classpath bin -sourcepath src com.qwertovsky.helloworld.HelloWorld jdb को इनिशियलाइज़ कर रहा है ... > डिबगर कमांड दर्ज करने के लिए अपना आंतरिक टर्मिनल लॉन्च करता है। बाद में मदद को हेल्प कमांड का उपयोग करके प्रदर्शित किया जा सकता है।
कैलकुलेटर वर्ग में लाइन 9 पर एक विराम बिंदु सेट करें
> com.qwertovsky.helloworld.Calculator:9 पर रुकें ब्रेकपॉइंट com.qwertovsky.helloworld.Calculator:9 को स्थगित करना। कक्षा लोड होने के बाद इसे सेट किया जाएगा। हम निष्पादन के लिए लॉन्च करते हैं।
> रन रन com.qwertovsky.helloworld.HelloWorld अनकच्ड सेट java.lang.Throwable सेट डिफर्ड अनकॉटेड java.lang.Throwable> VM स्टार्टेड: सेट डिफर्ड ब्रेकपॉइंट com.qwertovsky.helloworld.Calculator:9 हैलो वर्ल्ड! ब्रेकप्वाइंट हिट: "थ्रेड = मेन", com.qwertovsky.helloworld.Calculator.sum (), लाइन = 9 बीसीआई = 0 9 योजक योजक = नया योजक (); अपनी बीयरिंग प्राप्त करने के लिए, आप स्रोत कोड का एक टुकड़ा प्रदर्शित कर सकते हैं जहां कर्सर वर्तमान में स्थित है।
मुख्य सूची 5 सार्वजनिक वर्ग कैलकुलेटर 6 (7 सार्वजनिक अंतर राशि (इंट... ए) 8 (9 => योजक योजक = नया योजक (); 10 के लिए (इंट आई: ए) 11 ( 12 योजक। जोड़ें (आई); 13) 14 रिटर्न adder.getSum (); पता करें कि वेरिएबल a क्या है।
मुख्य प्रिंट ए = इंस्टेंस ऑफ़ इंट (आईडी = 340) मुख्य डंप ए = ( 2, 3) मुख्य स्टॉप com.qwertovsky.helloworld.operation.Adder:19 डिफरिंग ब्रेकपॉइंट com.qwertovsky.helloworld.operation.Adder:19। कक्षा लोड होने के बाद इसे सेट किया जाएगा। आइए निष्पादन जारी रखें।
मुख्य सामग्री > आस्थगित ब्रेकप्वाइंट सेट करें com.qwertovsky.helloworld.operation.Adder:19 ब्रेकप्वाइंट हिट: "थ्रेड = मेन", com.qwertovsky.helloworld.operation.Adder.add (), लाइन = 19 बीसीआई = 0 19 योग + = बी ; मुख्य सूची 15) 16 17 सार्वजनिक शून्य जोड़ (इंट बी) 18 (19 => योग+=बी; 20) 21 22 सार्वजनिक इंट गेटसम () 23 (24 वापसी राशि; मुख्य प्रिंट योग = 0 मुख्य प्रिंट बी बी = 2 में करंट लाइन और देखें कि योग 2 के बराबर हो गया है।
मुख्य चरण> चरण पूर्ण: "थ्रेड = मेन", com.qwertovsky.helloworld.operation.Adder.add (), लाइन = 20 बीसीआई = 10 20 ) मुख्य प्रिंट योग = 2 चलो एडर क्लास से कैलकुलेटर क्लास में चढ़ते हैं कि इसे बुलाया।
मुख्य चरण ऊपर> चरण पूर्ण: "थ्रेड = मुख्य", com.qwertovsky.helloworld.Calculator.sum (), लाइन = 10 बीसीआई = 36 10 for(int i:a) ब्रेकपॉइंट निकालें
मुख्य स्पष्ट com.qwertovsky.helloworld.operation.Adder:19 हटाया गया: ब्रेकप्वाइंट com.qwertovsky.helloworld.operation.Adder:19 मुख्य चरण> चरण पूर्ण: "थ्रेड = मुख्य", com.qwertovsky.helloworld.Calculator.sum() , लाइन = 12 बीसीआई = 30 12 योजक। जोड़ें (i); आप अगले आदेश का उपयोग करके विधियों में कदम रखने से बच सकते हैं।
मुख्य अगला > चरण पूर्ण: "थ्रेड = मेन", com.qwertovsky.helloworld.Calculator.sum (), लाइन = 10 बीसीआई = 36 10 फॉर (इंट आई: ए) मेन नेक्स्ट > चरण पूर्ण: "थ्रेड = मेन", com.qwertovsky.helloworld.Calculator.sum (), लाइन = 14 बीसीआई = 42 14 रिटर्न एडर.गेटसम (); हम अभिव्यक्ति के मूल्य की जांच करते हैं और निष्पादन को पूरा करते हैं।
मुख्य eval adder.getSum() adder.getSum() = 5 मुख्य सामग्री > 2+3=5 आवेदन से बाहर हो गया

परीक्षण करना अच्छा होगा

हम जुनीट का उपयोग करते हैं।
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 पैकेज com.qwertovsky.helloworld; स्थिर org.junit.Assert.* आयात करें; आयात java.util.Arrays; आयात java.util.Collection; आयात org.junit.Test; आयात org.junit.runner.RunWith; आयात org.junit.runners.Parameterized.Parameters; @RunWith(value=org.junit.runners.Parameterized.class) पब्लिक क्लास टेस्टकैलक्यूलेटर (int अपेक्षित; int arg; @Parameters पब्लिक स्टैटिक कलेक्शन पैरामीटर () (वापसी Arrays.asList (नया int (((4)), (2, 2)) ,((-1),(4, -5)) ,((0),(0,0,0) ), ((0), ()))); ) सार्वजनिक टेस्ट कैलकुलेटर (इंट अपेक्षित, इंट तर्क) (यह। अपेक्षित = अपेक्षित; यह। arg = arg;) @ सार्वजनिक शून्य परीक्षण का परीक्षण करें () (कैलक्यूलेटर सी = नया कैलकुलेटर (); assertEquals(अपेक्षित, c.sum(arg)); ) )
संकलन
mkdir test_bin javac -classpath lib/path/junit-4.8.2.jar -sourcepath ./src -d test_bin test/com/qwertovsky/helloworld/TestCalculator.java रन। विंडोज़ पर क्लासपाथ विभाजक ";" है, लिनक्स पर यह ":" है। दोनों सीमांकक सिगविन कंसोल में काम नहीं करते हैं। शायद ";" काम करना चाहिए, लेकिन इसे कमांड सेपरेटर के रूप में माना जाता है।
java -classpath lib/path/junit-4.8.2.jar:./test_bin org.junit.runner.JUnitCore com.qwertovsky.helloworld.TestCalculator JUnit संस्करण 4.8.2 .... समय: 0.031 ठीक (4 परीक्षण)

आइए एक पुस्तकालय बनाएं

कैलकुलेटर वर्ग उपयोगी साबित हुआ है और इसका उपयोग कई परियोजनाओं में किया जा सकता है। आइए कैलकुलेटर वर्ग से संबंधित हर चीज को एक अलग प्रोजेक्ट में ले जाएं।
हैलोवर्ल्ड "---बिन"---src "---com"---qwertovsky "---helloworld "---HelloWorld.java कैलकुलेटर "---बिन"---src ""----com " "----qwertovsky " "---कैलकुलेटर " "---Calculator.java " "--- ऑपरेशन " "---Adder.java "---test "---com "---qwertovsky " ---कैलकुलेटर "---TestCalculator.java स्रोतों में संकुल के नाम भी बदलें। HelloWorld.java में आपको लाइन जोड़नी होगी
आयात com.qwertovsky.calculator.Calculator; संकलन।
सीडी कैलकुलेटर javac -sourcepath src -d bin src/com/qwertovsky/कैलकुलेटर/कैलकुलेटर.जावा एक जार संग्रह बनाना
जार सीवीएफ कैलकुलेटर। जार-सी बिन। जोड़ा गया मेनिफेस्ट जोड़ना: com/(in = 0) (आउट = 0) (संग्रहित 0%) जोड़ना: com/qwertovsky/(in = 0) (आउट = 0) (संग्रहित 0%) जोड़ना: com/qwertovsky/कैलकुलेटर/ (इन = 0) (आउट = 0) (संग्रहीत 0%) जोड़ना: कॉम/क्यूवर्टोव्स्की/कैलकुलेटर/कैलकुलेटर। क्लास (इन = 497) (आउट = 373) (24%) जोड़ना: कॉम/क्यूवर्टोव्स्की/कैलकुलेटर/ऑपरेशन /(in = 0) (आउट = 0) (0% संग्रहीत) जोड़ना: com/qwertovsky/कैलकुलेटर/ऑपरेशन/Adder.class(in = 441) (आउट = 299 (डिफ्लेटेड 32%) बिन में प्रोग्राम चलाते हैं निर्देशिका।

हमें यह पता लगाने की जरूरत है कि पुस्तकालय के अंदर क्या है

आप ज़िप-अनपैकर के साथ संग्रह को अनपैक कर सकते हैं और देख सकते हैं कि पुस्तकालय में कौन सी कक्षाएं हैं।
जावप डिस्सेबलर का उपयोग करके किसी भी वर्ग के बारे में जानकारी प्राप्त की जा सकती है।
javap -c -classpath Calculator.jar com.qwertovsky.calculator.कैलकुलेटर "कैलकुलेटर.जावा" पब्लिक क्लास com.qwertovsky.calculator से संकलित। कैलकुलेटर java.lang.Object (सार्वजनिक com.qwertovsky.calculator.Calculator(); कोड बढ़ाता है) : 0: aload_0 1: इनवोकस्पेशल #1;//विधि जावा/लैंग/ऑब्जेक्ट।" ": () वी 4: रिटर्न पब्लिक इंट सम (इंट); कोड: 0: नया # 2; // क्लास कॉम/क्यूवर्टोव्स्की/कैलकुलेटर/ऑपरेशन/एडर 3: डुप 4: इनवोकस्पेशल # 3;//विधि कॉम/क्यूवर्टोव्स्की /कैलकुलेटर/ऑपरेशन/एडर।" ":()V 7: astore_2 8: aload_1 9: astore_3 10: aload_3 11: arraylength 12: istore 4 14: iconst_0 15: istore 5 17: iload 5 19: iload 4 21: if_icmpge 42 24: aload_3 25: iload 5 27: iaload 28: istore 6 30: aload_2 31: iload 6 33: इनवोकवर्चुअल #4; //विधि com/qwertovsky/कैलकुलेटर/ऑपरेशन/Adder.add:(I)V 36: iinc 5, 1 39: goto 17 42 : aload_2 43: इनवोकवर्चुअल #5; //विधि com/qwertovsky/कैलकुलेटर/ऑपरेशन/Adder.getSum:()I 46: ireturn Adder क्लास की ऐड मेथड को कॉल किया जाता है।Sum मेथड के पूरा होने के बाद, Adder.getSum() कहा जाता है।
-c स्विच के बिना, प्रोग्राम केवल चर और विधियों की एक सूची देगा (यदि आप -प्राइवेट का उपयोग करते हैं, तो सभी)।
javap -निजी-क्लासपाथ कैलकुलेटर.जार कॉम.क्वर्टोव्स्की .गणक

पुस्तकालय का दस्तावेजीकरण करना बेहतर है

आइए इसके लिए कैलकुलेटर वर्ग को बदलें।
दस्तावेज़ीकरण निम्न आदेश के साथ उत्पन्न किया जा सकता है। यदि कोई त्रुटि होती है, तो प्रोग्राम संभावित विकल्पों की एक सूची प्रदर्शित करेगा।
mkdir doc javadoc -d doc -charset utf-8 -sourcepath src -author -subpackages com.qwertovsky.calculator

jar संग्रह पर हस्ताक्षर किए जा सकते हैं

यदि आपको डिजिटल हस्ताक्षर के साथ अपनी लाइब्रेरी पर हस्ताक्षर करने की आवश्यकता है, तो कीटूल और जार्सिग्नर बचाव में आएंगे।
हम एक हस्ताक्षर उत्पन्न करते हैं।
keytool -genkey -keyalg rsa -keysize 2048 -alias qwertokey -keystore path/to/qwerto.keystore कीस्टोर पासवर्ड डालें: नया पासवर्ड दोबारा दर्ज करें: आपका पहला और अंतिम नाम क्या है? : Valery Qwertovsky आपकी संगठनात्मक इकाई का नाम क्या है? : क्वर्टोव्स्की आपके संगठन का नाम क्या है? : क्वर्टोव्स्की आपके शहर या इलाके का नाम क्या है? : Tver आपके राज्य या प्रांत का नाम क्या है? : टावर्सकाया ओबी। इस इकाई के लिए दो अक्षरों वाला देश कोड क्या है? : आरयू क्या सीएन = वालेरी क्वर्टोव्स्की, ओयू = क्वर्टोव्स्की, ओ = क्वर्टोव्स्की, एल = टवर, एसटी = टावर्सकाया ओब्ल।, सी = आरयू सही है? : y के लिए कुंजी पासवर्ड दर्ज करें (रिटर्न अगर कीस्टोर पासवर्ड के समान है): नया पासवर्ड दोबारा दर्ज करें:
एक प्रमाणपत्र हस्ताक्षर अनुरोध (सीएसआर) उत्पन्न करना
keytool -certreq -file path/to/qwertokey.crt -alias qwertokey -keystore path/to/qwerto.keystore प्रमाणीकरण प्राधिकारी को प्राप्त फाइल की सामग्री भेजें। हम प्रमाणन प्राधिकरण से एक प्रमाण पत्र प्राप्त करते हैं। हम इसे एक फ़ाइल में सहेजते हैं (उदाहरण के लिए, qwertokey.cer) और इसे रिपॉजिटरी में आयात करते हैं
keytool -import -trustcacerts -keystore path/to/qwert.keystore -alias qwertokey -file path/to/qwertokey.cer जार संग्रह पर हस्ताक्षर करें
jarsigner -keystore path/to/qwerto.keystore Calculator.jar qwertokey हम किसी को भी qwertokey.cer फाइल भेजते हैं जो आर्काइव की जांच करना चाहता है। इसे इस तरह चेक किया जाता है
jarsigner -verify -verbose -certs -keystore path/to/qwerto.keystore Calculator.jar

पुस्तकालय का उपयोग करना

एक हैलोवर्ल्ड प्रोग्राम है जो कैलकुलेटर लाइब्रेरी क्लास का उपयोग करता है। प्रोग्राम को संकलित करने और चलाने के लिए, आपको लाइब्रेरी को शामिल करना होगा।
संकलन
सीडी हैलोवर्ल्ड javac -sourcepath src -d bin -classpath path/to/calculator.jar src/com/qwertovsky/helloworld/HelloWorld.java रन
जावा-क्लासपाथ बिन:पथ/से/कैलकुलेटर.जर com.qwertovsky.helloworld.HelloWorld

कार्यक्रम को एक साथ रखना

यह विभिन्न तरीकों से किया जा सकता है।

पहला तरीका

सीडी हैलोवर्ल्ड इको मेन-क्लास: कॉम.क्वर्टोव्स्की सीएमएफ मेनिफेस्ट.एमएफ हेलोवर्ल्ड.जर-सी बिन। यहाँ सूक्ष्मताएँ हैं।
इन - लाइन
मुख्य श्रेणी: com.qwertovsky.helloworld.HelloWorld में अनुगामी रिक्त स्थान नहीं होने चाहिए।
दूसरी सूक्ष्मता का वर्णन इसमें किया गया है: उसी पंक्ति में अगली पंक्ति में स्थानांतरण होना चाहिए। ऐसा तब होता है जब मेनिफेस्ट को किसी तृतीय-पक्ष संग्रहकर्ता द्वारा संग्रहीत किया जाता है।
जार प्रोग्राम में मेनिफेस्ट से अंतिम पंक्ति को तब तक शामिल नहीं किया जाएगा जब तक कि अंत में कोई लाइन ब्रेक न हो।
एक और बिंदु: मैनिफेस्ट में लाइनों के बीच खाली रेखाएं नहीं होनी चाहिए। एक त्रुटि "java.io.IOException: अमान्य मेनिफेस्ट प्रारूप" फेंक दिया जाएगा।

इको कमांड का उपयोग करते समय, आपको केवल मेन-क्लास लाइन के अंत में स्पेस देखने की जरूरत है।

दूसरा रास्ता

सीडी हैलोवर्ल्ड इको क्लास-पथ: लिब/कैलकुलेटर.जर . इस तरह, हम मेन-क्लास में स्पेस के साथ एरर से बचते हैं।

तीसरा रास्ता

सीडी हैलोवर्ल्ड एमकेडीआईआर लिब सीडी लिब जार -एक्सवीएफ पथ/से/कैलकुलेटर.जर कॉम/ बनाया गया: कॉम/बनाया गया: कॉम/क्यूवर्टोव्स्की/बनाया गया: कॉम/क्यूवर्टोव्स्की/कैलकुलेटर/फुलाया गया: कॉम/क्यूवर्टोव्स्की/कैलकुलेटर/कैलकुलेटर.क्लास बनाया गया: कॉम /qwertovsky/कैलकुलेटर/ऑपरेशन/ फुलाया: com/qwertovsky/कैलकुलेटर/ऑपरेशन/Adder.class cd .. cp -r bin/* lib/ jar -cef com.qwertovsky.helloworld.HelloWorld helloworld.jar -C lib । rm -r lib निष्पादन योग्य में आवश्यक लाइब्रेरी कोड शामिल करें।

निष्पादन योग्य जार फ़ाइल चलाना

कैलकुलेटर.जर फ़ाइल निष्पादन योग्य नहीं है। लेकिन helloworld.jar चलाया जा सकता है।
यदि संग्रह पहले दो तरीकों से बनाया गया था, तो उसके बगल में उसी निर्देशिका में कैलकुलेटर के साथ एक lib फ़ोल्डर होना चाहिए। जार फ़ाइल। इस तरह के प्रतिबंध इस तथ्य के कारण हैं कि निष्पादन योग्य फ़ाइल के सापेक्ष पथ को मैनिफेस्ट में वर्ग-पथ में निर्दिष्ट किया गया है।
सीडी कैलकुलेटर एलएस ../HelloWorld/lib कैलकुलेटर.जार जावा -जर ../HelloWorld/helloworld.jar तीसरी विधि में निष्पादन योग्य में आवश्यक पुस्तकालय शामिल हैं। आपको आवश्यक पुस्तकालयों को पास में रखने की आवश्यकता नहीं है। वैसे ही चलता है।
जावा -जार ../HelloWorld/helloworld.jar

JavaEE अनुप्रयोगों से कैसे निपटें

वैसे ही। संकलन के लिए केवल पुस्तकालयों को उस एप्लिकेशन सर्वर से लिया जाना चाहिए जिसका उपयोग किया जा रहा है। अगर मैं जेबॉस का उपयोग कर रहा हूं, तो सर्वलेट को संकलित करने के लिए, मुझे निम्न की तरह कुछ करने की आवश्यकता होगी
javac -classpath पथ/से/jboss/आम/lib/jboss-servlet*.jar -d ./classes src/com/qwertovsky/app/servlets/MenuSt.java
JavaEE एप्लिकेशन संग्रह की संरचना को एक निश्चित प्रारूप का पालन करना चाहिए। उदाहरण के लिए
my.ear `---मेटा-आईएनएफ | `---manifest.mf `---lib | `---mylib.jar `---my.war | `---मेटा-आईएनएफ | | `---manifest.mf | `---वेब-आईएनएफ | | `---lib | | | `---myweblib.jar | | `---कक्षाएं | | | `---कॉम | | | `---... | | `---web.xml | `---index.html | `---<остальное веб-содержимое (страницы, изображения)>`--- myejb.jar
कमांड लाइन का उपयोग करके सर्वर पर ही एप्लिकेशन को चलाने का तरीका प्रत्येक सर्वर के लिए अलग होता है।

मुझे उम्मीद है कि जावा के साथ काम करने के लिए यह लेख किसी के लिए धोखा पत्र बन जाएगा कमांड लाइन. ये कौशल आपको चींटी स्क्रिप्ट की सामग्री और अर्थ को समझने में मदद करेंगे और "आपको कौन सा आईडीई सबसे अच्छा लगता है?" की तुलना में अधिक कठिन साक्षात्कार प्रश्नों का उत्तर देगा।

अब मैं दिखाऊंगा कि आप बिना किसी वातावरण जैसे एप्लिकेशन सर्वर के एक साधारण जावा प्रोग्राम कैसे चला सकते हैं। एक वर्ग पर्याप्त है, जिसमें मुख्य विधि परिभाषित की जाएगी।

पैकेज कॉम.ब्लॉगस्पॉट;
पब्लिक क्लास डेवलपर रिमार्क्स (
सार्वजनिक स्थैतिक शून्य main (String [] args) (
अगर (तर्क लंबाई == 0) (
सिस्टम.आउट
.println ("उस टेक्स्ट को कमांड लाइन पैरामीटर के रूप में पास करें जिसे आप देखना चाहते हैं।");
) वरना (
System.out.println ("आपने दर्ज किया:" + args);
}
System.out.println ("डेवलपर-remarks.blogspot.com पर उपलब्ध स्रोत");
}
}
कमांड लाइन में, प्रोग्राम शुरू करते समय, आपको स्क्रीन पर प्रदर्शित होने वाले टेक्स्ट को पास करना होगा। अन्यथा, एक संबंधित संदेश प्रदर्शित किया जाएगा। प्रोग्राम में पास किए गए सभी पैरामीटर मुख्य विधि द्वारा स्वीकार किए जाने वाले स्ट्रिंग्स के args सरणी में समाहित होंगे। यदि कोई पैरामीटर पारित नहीं किया जाता है, तो सरणी की लंबाई शून्य होगी।

अब टर्मिनल से जार फ़ाइल को चलाने में सक्षम होने के लिए एक्लिप्स को कॉन्फ़िगर करें। ऐसा करने के लिए, आपको पहले एक रन कॉन्फ़िगरेशन बनाने की आवश्यकता है। शीर्ष मेनू से रन - रन कॉन्फ़िगरेशन चुनें। निम्न विंडो खुलेगी:

बाईं ओर की सूची में, एप्लिकेशन प्रकार चुनें: जावा एप्लिकेशन। वहां, स्क्रीनशॉट में दिखाए अनुसार एक नया कॉन्फ़िगरेशन बनाएं। ऐसा करने के लिए, लक्ष्य प्रोजेक्ट और उस वर्ग का चयन करें जिसमें मुख्य विधि है।

अब हम अपनी परियोजना को निष्पादन योग्य जार फ़ाइल में निर्यात करने के लिए तैयार हैं। ऐसा करने के लिए, दाहिने माउस बटन के साथ प्रोजेक्ट पर क्लिक करें, "निर्यात करें ..." चुनें, निम्न विंडो खुल जाएगी:


ट्री व्यू से रननेबल जार फ़ाइल चुनें। यदि आप प्रोजेक्ट प्रकार को नाम से फ़िल्टर करते हैं तो खोज को बहुत सरल बनाया जा सकता है। समाप्त क्लिक करें। उसके बाद, निर्यात सेटिंग्स के लिए एक विंडो खुलेगी:


इसमें, पहले से बनाए गए लॉन्च कॉन्फ़िगरेशन का चयन करें। फिर जार फ़ाइल का पूरा नाम प्रदान करें। "लाइब्रेरी हैंडलिंग" अनुभाग में, "जेनरेट किए गए जार में आवश्यक लाइब्रेरी निकालें" चुनें (आवश्यक लाइब्रेरी को जेनरेट किए गए संग्रह में अनपैक करें)। समाप्त पर क्लिक करें और निष्पादन योग्य संग्रह बनाया जाएगा।

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

अब एक टर्मिनल खोलें और उस निर्देशिका में नेविगेट करें जहां निष्पादन योग्य जार बनाया गया था। निम्न आदेश दर्ज करें:

java -jar developer-remarks.jar हैलो वर्ल्ड!

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

प्रदर्शित दृष्टिकोण शैक्षिक और परीक्षण उद्देश्यों के लिए उपयोगी हो सकता है। उदाहरण के लिए, एक क्लाइंट बनाने के लिए जो ईजेबी को कॉल करेगा और उसके काम के परिणाम को कंसोल पर प्रिंट करेगा। इस दृष्टिकोण का लाभ किसी भी प्रकार के वातावरण के बिना जार संग्रह का शुभारंभ है। JDK/JRE होना पर्याप्त है। स्रोत उपलब्ध हैं।

कार्य: कमांड लाइन से जावा एप्लिकेशन चलाएँ।

उदाहरण के लिए, मैंने एक छोटा प्रोग्राम बनाया है जो किसी दिए गए त्रिज्या के लिए एक सर्कल के क्षेत्र की गणना करना चाहिए। कार्यक्रम में दो वर्ग शामिल हैं: ज्योमेट्रीडब्ल्यूएफ (मुख्य) और सर्कल। यह एक कंसोल एप्लिकेशन बनाने वाला है। जावा एप्लिकेशन शुरू करना कमांड लाइन से किया जाना चाहिए.

पैकेज ज्यामितिwf;
पब्लिक क्लास ज्योमेट्रीडब्ल्यूएफ(
सार्वजनिक स्थैतिक शून्य main (String [] args) (
प्रयत्न(
अगर (तर्क। बराबर ("सर्कल")) (
सर्कल सी = नया सर्कल (डबल.पार्स डबल (तर्क));
System.out.println ("सर्कल परिधि:" + c.perimeter ());
System.out.println ("सर्कल एरिया:" + c.area ());
}
}
पकड़ें (ArrayIndexOutOfBoundsException e) (
System.out.println ("अमान्य इनपुट पैरामीटर!");
}
}
}

पैकेज ज्यामितिwf;
पब्लिक क्लास सर्कल (
सार्वजनिक डबल आर = 0;
पब्लिक सर्कल (डबल आर) (
यह.आर = आर;
}
सार्वजनिक दोहरा क्षेत्र () (
वापसी (गणित। पीआई * आर * आर);
}
सार्वजनिक डबल परिधि () (
वापसी (2*Math.PI*r);
}
}

अगला कदम परियोजना का निर्माण करना है। मैं विकास के लिए नेटबीन आईडीई का उपयोग करता हूं। तदनुसार, संयोजन "Shift + F11" ("क्लियर एंड बिल्ड प्रोजेक्ट") को दबाकर असेंबली की जाती है। नतीजतन, मुझे एक तैयार जार फ़ाइल मिलती है
(C:\Users\Jan\Documents\NetBeansProjects\GeometryWF\dist\GeometryWF.jar)।

कमांड लाइन से लॉन्च करें।

कमांड प्रॉम्प्ट लॉन्च करने से पहले, "मेरा कंप्यूटर" आइकन पर राइट-क्लिक करें और "गुण" खोलें। "उन्नत सिस्टम सेटिंग्स" -> "पर्यावरण चर" पर जाएं। "सिस्टम वेरिएबल" अनुभाग में, आपको "" मान के साथ एक नया चर "JAVA_HOME" बनाने की आवश्यकता है (मेरे पास यह "C:\glassfish3\jdk\bin" है)। अर्धविराम के बाद मौजूदा पथ चर में वही पथ लिखा जाना चाहिए। हम सब कुछ बचाते हैं और कमांड लाइन चलाते हैं।

हम CHDIR कमांड का उपयोग करके निर्देशिका को जार फ़ाइल के साथ फ़ोल्डर में बदलते हैं:

सी:\उपयोगकर्ता\जॉन> CHDIR C:\Users\John\Documents\NetBeansProjects\GeometryWF\dist\

हम कमांड लाइन से "java -jar .

C:\Users\John\Documents\NetBeansProjects\GeometryWF\dist>जावा-जार ज्यामितिWF.jar वृत्त 9

आउटपुट पर हमें मिलता है:

वृत्त परिधि: 56.548667764616276
सर्कल स्क्वायर: 254.4690049407323



परियोजना का समर्थन करें - लिंक साझा करें, धन्यवाद!
यह भी पढ़ें
मुर्गा लड़ाई खेल नियम मुर्गा लड़ाई खेल नियम मिनीक्राफ्ट के लिए मॉड 1.7 10 वॉच रेसिपी।  Minecraft में आइटम क्राफ्ट करने की रेसिपी।  Minecraft में हथियार मिनीक्राफ्ट के लिए मॉड 1.7 10 वॉच रेसिपी। Minecraft में आइटम क्राफ्ट करने की रेसिपी। Minecraft में हथियार शिलिंग और स्टर्लिंग - शब्दों की उत्पत्ति शिलिंग और स्टर्लिंग - शब्दों की उत्पत्ति