मैं डेबियन 6 पर सही ढंग से काम करने के लिए ओरेकल जावा 7 अपडेट 3 प्राप्त करने की कोशिश कर रहा हूं। मैंने फ़ाइलों को डाउनलोड और सेट किया है /usr/java/jre1.7.0_03
। मैंने निम्नलिखित दो पंक्तियों को भी इसके अंत में निर्धारित किया है /etc/bash.bashrc
:
export JAVA_HOME=/usr/java/jre1.7.0_03
export PATH=$PATH:$JAVA_HOME/bin
अन्य उपयोगकर्ताओं के रूप में लॉग इन करना और रूट ठीक है, जावा पाया जा सकता है:
chris@mc:~$ java -version
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b04)
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)
हालांकि दो मामले हैं जहां जावा को नीचे विस्तृत रूप में नहीं पाया जा सकता है। ध्यान दें कि इन दोनों ने ठीक काम किया है जब मैंने पहले OpenJDK Java 6 को एप्टीट्यूड के माध्यम से स्थापित किया है, लेकिन मुझे विभिन्न कारणों से Oracle जावा 7 की आवश्यकता है।
सबसे महत्वपूर्ण बात, मैं उन अन्य उपयोगकर्ता के रूप में कमांड नहीं चला सकता
su
, जो पैठ दिखाने के बावजूद कि जावा मौजूद होना चाहिए। उपयोगकर्ता के साथ बनाया गया थाadduser chris
root@mc:~# su chris -c "echo $PATH" /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/java/jre1.7.0_03/bin:/bin root@mc:~# su chris -c "java -version" bash: java: command not found root@mc:~# su chris -c "/usr/java/jre1.7.0_03/bin/java -version" java version "1.7.0_03" ...
यह कैसे हो सकता है
PATH
लेकिन पाया नहीं जा सकता है? अपडेट 2012/05/04:, डैनियल द्वारा समझाया यह इसलिए इस तरह के रूप में फाइल एक गैर-सहभागी खोल जा रहा है के साथ क्या करना/etc/profile
है और/etc/bash.bashrc
निष्पादित नहीं कर रहे हैं। उस उपयोगकर्ता को पूर्ण स्वैप करना और जावा काम करना:root@mc:~# su chris chris@mc:/root$ java -version java version "1.7.0_03" ...
मैं स्टार्ट अप पर एक स्क्रिप्ट चलाता हूं जो समान लेकिन थोड़ी अलग समस्याओं को प्रदर्शित करता है। स्क्रिप्ट
/etc/init.d/start-mystuff.sh
जार में स्थित है और कॉल करता है:#!/bin/bash # /etc/init.d/start-mystuff.sh java -jar /opt/Mars.jar
मैं पुष्टि कर सकता हूं कि स्क्रिप्ट स्टार्ट अप पर चलती है और निकास कोड 127 है, जो इंगित करता है कि कमांड नहीं मिला।
PATH
शो को प्रिंट / सेव करने के लिए एक लाइन डालना/sbin:/usr/sbin:/bin:/usr/bin
यह दूसरी समस्या उतनी महत्वपूर्ण नहीं है क्योंकि मैं स्क्रिप्ट में जावा निष्पादन योग्य को सीधे इंगित कर सकता हूं, लेकिन मैं अभी भी उत्सुक हूं!
मैंने पूरी PATH
और JAVA_HOME
स्पष्ट रूप से सेटिंग करने की कोशिश की है /etc/environment
जिसमें मदद नहीं की। मैंने उन्हें स्थापित करने की भी कोशिश की है /etc/profile
जिसमें मदद करने के लिए प्रतीत नहीं होता है। मैंने PATH
विभिन्न स्थानों (डुह!) में स्थापित करने के बाद फिर से लॉग इन करने की कोशिश की है ।
वैसे भी, शायद एक सरल एक लाइन समाधान के लिए लंबी पोस्ट :( इसके साथ किसी भी मदद की बहुत सराहना की जाएगी, मैंने खुद को इसे ठीक करने की कोशिश में बहुत लंबा समय बिताया है।
प्रेरणा
पहली समस्या अस्पष्ट लग सकती है लेकिन मेरे सिस्टम में मेरे पास ऐसे उपयोगकर्ता हैं जिन्हें एसएसएच एक्सेस की अनुमति नहीं है फिर भी मैं अभी भी उनके रूप में प्रक्रियाएं चलाना चाहता हूं। मेरे पास इस तरह से लिपियों का एक टन है और मैं उन सभी को बदलना नहीं चाहता।