2014-05-08 15 views
6

मैं जेनकिन्स निर्माण को तैनात करने के लिए उपयोग कर रहा हूं।bash: jar: कमांड नहीं मिला

हमें कुछ निर्देशिका में .war से फ़ाइलों को निकालने की आवश्यकता है। हमारे पास है .xml फ़ाइल जिसमें से फ़ाइलों को निकालने के लिए आदेश शामिल हैं .war फ़ाइल और सर्वर प्रारंभ करें।

निर्माण ठीक से बनाया जा रहा है लेकिन .war निष्कर्षण नहीं हो रहा है और गंतव्य फ़ोल्डर खाली छोड़ा जा रहा है। जेनकींस कंसोल निम्नलिखित उत्पादन पता चलता है:

[sshexec] bash: jar: command not found 

अन्य उत्तर से पढ़ने के रूप में, मैं .bashrc में PATH ठीक से सेट किया या .profile में लेकिन मैं अभी भी एक ही मुद्दे का सामना करना पड़ रहा है।

+0

क्या आप सुनिश्चित हैं कि आपके पास जेडीके स्थापित है और जेआरई नहीं है? – fge

+0

@fge: जेडीके इंस्टॉल किया गया है (jdk1.6.0_33) और जेआरई जेडीके फ़ोल्डर, निजी जेआर – Satish

+0

के अंदर मौजूद है यदि आपके पास आपके सिस्टम पर 'jar' कमांड नहीं है, तो' ठीक करने के लिए कोई "सही" तरीका नहीं है। PATH'। यदि यह आपके सिस्टम पर मौजूद है, तो आपने 'पथ' ठीक से सेट नहीं किया है "। मैं आपके प्रश्न को संपादित करते समय इस वाक्य को हटाना नहीं चाहता था, लेकिन आपको शायद यह स्पष्ट करना चाहिए कि आपका मतलब क्या है, या शायद इसे बाहर निकालो। – tripleee

उत्तर

1

विशिष्ट होने के लिए, JAVA बिन निर्देशिका आपके PATH चर में नहीं है। इसे PATH चर में जोड़ें। निष्पादन योग्य खोजने के लिए, ओएस को देखने के लिए निर्देशिकाओं की एक सूची होना चाहिए। तो, निर्देशिका जो 'जार tool in the PATH` वातावरण चर

नोट शामिल करें: Windows के लिए, पथ विभाजक है (;) और यूनिक्स की तरह ओएस के लिए, पथ विभाजक है (:)

+0

बिन निर्देशिका मौजूद है और यह है कि मैं कैसे कॉन्फ़िगर किया .. क्या यह Ryt है? ** निर्यात JAVA_HOME =/usr/java/jdk1.6.0_33 निर्यात पाथ = $ पाथ: /usr/java/jdk1.6.0_33/bin क्लासस्पैट = $ JAVA_HOME/lib/tools.jar: $ JAVA_HOME/jre/lib /rt.jar;export क्लासस्पैट ** – Satish

+0

क्या आप इस तरह से निष्पादित करने में सक्षम हैं - टर्मिनल में '/ usr/java/jdk1.6.0_33/bin/jar'। क्या वह काम था? – Keerthivasan

+0

असल में, मैं फ़ाइलों को निकालने के लिए ** jar -xvf filename.war ** का उपयोग कर रहा हूं, कमांड वर्क्स ठीक है अगर इसे मैन्युअल रूप से आमंत्रित किया जाता है, लेकिन जेनकींस का उपयोग करना यह नहीं है .. क्या यह किसी प्रकार की अनुमति समस्या है ?? – Satish

2

"[sshexec ] "मुझे बताता है कि आप रिमोट होस्ट पर कमांड निष्पादित करने के लिए कुछ जेनकींस प्लगइन का उपयोग कर रहे हैं।

यह आमतौर पर जेनकींस इस कार्यान्वित का मतलब है (या देशी रूप SSH प्रोटोकॉल को लागू करने से एक बराबर बात):

ssh [email protected] 'jar arg1 arg2...' 

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

आप को देखने के लिए वास्तव में क्या अंतर एक खोल -l विकल्प और एक इसके बिना निष्पादित साथ निष्पादित के बीच है man (name of your shell) अध्ययन कर सकते हैं। बैश के मामले में यह अनिवार्य रूप से .profile और .bashrc निष्पादित नहीं किया जाएगा, इसलिए आपके पास कोई भी पाथ संशोधन नहीं होगा।

मुझे लगता है कि आपकी सर्वश्रेष्ठ शर्त jar कमांड को पूर्ण पथ प्रदान करना है जब आप इसे निष्पादित करना चाहते हैं।

13

इस प्रकार जावा devel स्थापित करें:

yum install java-devel 
+1

डेबियन पर जो 'apt-get install openjdk-7-jdk' या [विकल्प] में से एक होगा (https://packages.debian.org/search?searchon=contents&keywords=bin%2Fjar&mode=path&suite=stable&arch=amd64)। Https://wiki.debian.org/JavaPackage भी देखें – tripleee

0

आप दूरस्थ होस्ट पर कमांड को क्रियान्वित कर रहे हैं ताकि रूप में, यह दूरस्थ होस्ट पर नया शैल आह्वान करेंगे। वर्तमान होस्ट में सेट किया गया पथ। Bashrc फ़ाइल कोई फर्क नहीं पड़ेगा। इसके बजाय यदि आप दूरस्थ होस्ट की जावा में पैथ सेट करते हैं। Bashrc चीजों को और काम करना चाहिए यदि आप कोई स्क्रिप्ट चला रहे हैं तो JAR के लिए पूरा पथ का उल्लेख करें जैसे /usr/jdk64/jdk1.8.0_40/bin/jar -tf/tmp/jars /abc.jar रिमोट होस्ट पर कमांड का आह्वान करते समय।

दो तरीके करने के लिए:

  1. निर्यात पथ = $ पथ: /usr/jdk64/jdk1.8.0_40/bin ---> दूरस्थ होस्ट के .bashrc में

  2. /usr/jdk64/jdk1.8.0_40/bin/jar -tf /tmp/jars/abc.jar -> रिमोट होस्ट से JAR के लिए पूर्ण पथ के साथ जार कमांड का आह्वान करें।

संबंधित मुद्दे