जवाबों:
मुझे पूरा यकीन नहीं है लेकिन अगर आप सामान्य RPMS को स्थापित करते हैं तो JAVA_HOME मान भी इस पर सेट किया जा सकता है:
/usr/java/default/
EDIT: मैंने अभी-अभी अपने होम सिस्टम पर जाँच की है। मैंने यह फ़ाइल बनाई है:
/etc/profile.d/java.sh
उसमें सम्मिलित है:
export JAVA_HOME=/usr/java/default/
और मैं सन से आधिकारिक संस्करण का उपयोग कर रहा हूं: jdk-1.6.0_12-fcs
संपादित करें: यहां बताया गया है कि मैंने अपनी मशीन पर जावा की स्थापना कैसे की :
Oracle से Java JDK को डाउनलोड और इंस्टॉल करें
यह सुनिश्चित करें कि OpenJDK संस्करण के बजाय इस जावा का उपयोग निम्नलिखित दो आदेशों का उपयोग करके किया गया है:
alternatives --install /usr/bin/java java /usr/java/default/bin/java 999999 \
--slave /usr/bin/keytool keytool /usr/java/default/bin/keytool \
--slave /usr/bin/rmiregistry rmiregistry /usr/java/default/bin/rmiregistry
alternatives --install /usr/bin/javac javac /usr/java/default/bin/javac 999999 \
--slave /usr/bin/jar jar /usr/java/default/bin/jar \
--slave /usr/bin/rmic rmic /usr/java/default/bin/rmic
सुनिश्चित करें कि सभी उपयोगकर्ताओं का JAVA_HOME पर्यावरण चर सही मान पर सेट है:
echo "export JAVA_HOME=/usr/java/default/" > /etc/profile.d/java_home.sh
/usr/java/default
OpenJDK 1.6 और 1.7 स्थापित के साथ मेरे CentOS 6 बॉक्स में कोई नहीं है।
आप JAVA_HOME को JDK या JRE के मूल स्थान के रूप में सेट करना चाहते हैं, उदाहरण के लिए:
export JAVA_HOME=/usr/java/jdk1.3
यदि JDK (विकास किट) स्थापित है, तो ypu शायद इसे इंगित करना चाहते हैं, अन्यथा JRE पथ (जावा रनटाइम एनवायरनमेंट) का उपयोग करें। फिर, आप बिन निर्देशिका को शामिल करने के लिए अपना $ PATH पर्यावरण चर सेट करना चाह सकते हैं:
export PATH=$PATH:/usr/java/jdk1.3/bin
यदि आप tomcat का उपयोग कर रहे हैं, तो आपको tomcat उपयोगकर्ता के लिए CATALINA_HOME सेट करना पड़ सकता है।
export CATALINA_HOME=/path/to/tomcat
इसे उस सिस्टम के लिए सेट करने के लिए जिसे आप अपना / etc / प्रोफाइल संपादित करना चाहते हैं या /etc/profile.d फ़ोल्डर में .sh फ़ाइल जोड़ें। किसी विशेष उपयोगकर्ता के लिए आप इसे ~ / .profile या ~ / .bash_profile फ़ाइलों में रख सकते हैं।
नीचे हमेशा मेरे लिए पूरी तरह से काम कर रहा है:
[user@base ~]$ locate bin/java
/usr/bin/java
/usr/bin/javac
/usr/bin/javadoc
/usr/bin/javaws
/usr/java/jdk1.6.0_31/bin/java
/usr/java/jdk1.6.0_31/bin/javac
/usr/java/jdk1.6.0_31/bin/javadoc
/usr/java/jdk1.6.0_31/bin/javah
/usr/java/jdk1.6.0_31/bin/javap
/usr/java/jdk1.6.0_31/bin/javaws
/usr/java/jdk1.6.0_31/jre/bin/java
/usr/java/jdk1.6.0_31/jre/bin/java_vm
/usr/java/jdk1.6.0_31/jre/bin/javaws
इसका मतलब है कि मैं JAVA_HOME को /usr/java/jdk1.6.0_31 के रूप में सेट कर सकता हूं
मैंने इस समस्या पर विचार किया कि क्या कोई जावा के संस्करण का उपयोग करता है:
alternatives --config java
फिर किसी भी हार्ड कोड JAVA_HOME
को बदलने जा रहा है (कम से कम यह Centos 6.6 मैं वर्तमान में घूर रहा हूं) पर होगा। अर्थात कोई भी नहीं है /usr/java
।
यह सबसे अच्छा तरीका (विफलता के लिए खुला) जैसा नहीं लगता है, लेकिन 10 मिनट में मैंने इस पर खर्च किया है यह सबसे अच्छा लगता है।
में /etc/bashrc
करने के लिए मैं सेटिंग में बदलाव कर JAVA_HOME
होने के लिए:
export JAVA_HOME=$(alternatives --display java | grep current | sed 's/link currently points to //' | sed 's|/bin/java||')
आपको MacOSX पर कुछ ऐसा ही करना है, लेकिन सभी के बिना grep
और sed
परिणाम का पता लगाने के लिए। निश्चित रूप से alternatives
एक समान आसान समाधान प्रदान करता है।
वैसे भी मुझे उम्मीद है कि मैंने मदद की।
अद्यतन करें
नहीं ऐसा नहीं होगा JRE_HOME
। जेडीके / एसडीके स्पष्ट नहीं है (मैं देखता रहूंगा)।
alternatives
केवल डिफ़ॉल्ट रूप से JRE के बारे में हो रहा है। मैं @ उत्तर का जवाब देना चाहता हूं या केवल जावा स्थापित करें yum
और JAVA_HOME को उस पर सेट करें (चाल वह है जहां मैंने पाया है कि जहां स्थापित किया गया था!)।
yum install java-1.8.0-openjdk-devel.x86_64
cd /usr/lib/jvm
मैंने देखा java_1.8.0
कि एक सिमिलिंक है /etc/alternatives/java_sdk_1.8.0
और इसलिए मैंने अपना $ JAVA_HOME सेट किया है /usr/lib/jvm/java_1.8.0
। में /etc/bashrc
।
अजीब बात है, एक JAVE_HOME पर्यावरण चर होने की पूरी बात यह है कि आपको प्रत्येक कार्यक्रम के लिए पथ निर्दिष्ट करने की आवश्यकता नहीं है, यह इस चर की तलाश करके इस पथ को प्राप्त कर सकता है।
किसी भी तरह से, JAVA_HOME के लिए पर्यावरण चर खोजने का सही तरीका इको का उपयोग करना है:
[root@host ~]# echo $JAVA_HOME
/usr/java/j2sdk1.4.2_09
इस कमांड को रन करने से कमांड लाइन से कोई फर्क नहीं पड़ता कि आप किस संस्करण को चला रहे हैं।
पुन: Centos7, /etc/java/java.conf फ़ाइल देखें।
इसमें JAVA_HOME को निम्नलिखित dir में स्थित होने का संकेत दिया गया है: / usr / lib / jvm / java
मैंने जाँच की, यह jdk का सही संस्करण है जिसे मैंने yum के माध्यम से लोड किया है, और इसलिए ...
मेरे env में डिफ़ॉल्ट रूप से JAVA_HOME सेट नहीं है, इसलिए मैंने इसे .bash_profile में सेट किया है
मैंने पाया पैकेज प्रबंधक स्थानों की एक किस्म में जगह कर सकते हैं, इसलिए का उपयोग कर जो निम्नलिखित थोड़ा कम भंगुर है (आप स्पष्ट रूप से यह स्थापित करने के लिए है, तो एक कंटेनर का उपयोग की आवश्यकता होगी)
javaCompiler=$(which javac)
javaBin=$(dirname $(readlink -f $javaCompiler))
javaHome=${javaBin%/*}
export JAVA_HOME=$javaHome
या JRE के लिए
javaExec=$(which java)
javaBin=$(dirname $(readlink -f $javaExec))
javaHome=${javaBin%/*}
export JRE_HOME=$javaHome