के रूप में नहीं मिला है मेरे पास एक लिनक्स बॉक्स पर एक बैश स्क्रिप्ट है जो एक जार फ़ाइल चलाती है। जब नियमित उपयोगकर्ता के रूप में लॉग इन किया मैं स्क्रिप्ट चलाने के लिए अनुमति नहीं है, लेकिन यह निम्न लॉग प्रिंट:JAVA_HOME सुडो
*INFO * Using JVM found at /opt/jdk6/bin/java
जब मैं Sudo हालांकि साथ स्क्रिप्ट का उपयोग करने का प्रयास करें, यह देता है:
*ERROR* Unable to locate java, please make sure java is installed and JAVA_HOME set
मैंने ऊपर दिए गए पथ पर JAVA_HOME
सेट किया है - इसे echo $JAVA_HOME
& के साथ देख सकते हैं इसे स्क्रिप्ट के भीतर एक विकल्प के रूप में भी सेट किया गया है। मुझे खुशी है कि स्क्रिप्ट समस्या नहीं है - यह एक डिफ़ॉल्ट सीक्यू 5 नियंत्रण स्क्रिप्ट & है, मैं इसे बिना किसी मुद्दे के दर्जनों अन्य बक्से पर उपयोग कर रहा हूं। बस यह सुनिश्चित करें कि मैं & से ऊपर गलत क्या कर रहा हूं, मान लीजिए कि मैं कुछ लिनक्स सेट-अप खो रहा हूं?
जब मैं sudo
कमांड चलाता हूं, तो क्या इसके पास JAVA_HOME
तक पहुंच है जो मैंने स्वयं के रूप में स्थापित की है?
दोनों रूट के रूप में और नियमित उपयोगकर्ता के रूप 'गूंज $ JAVA_HOME' की सटीक उत्पादन क्या है? –
एंड्रयू, मेरे पास मशीन पर रूट उपयोगकर्ता के रूप में पहुंच नहीं है (sysadmin नहीं), बस एक सूडर के रूप में। यद्यपि यहां इस मुद्दे को अभी मिला है: http://unix.stackexchange.com/questions/6127/java-home-not-set-in-script-when-run-using-sudo सुडो पर्यावरण चर को अलग कर रहा था, इसे प्रबंधित किया 'sudo -E' ध्वज – anotherdave
के साथ मेरा मानना है कि यह distro पर निर्भर करता है - कुछ सुडोस envs रखते हैं, अन्य – Raz