如何查找YUM安裝的JAVA_HOME環(huán)境變量詳解
前言
開(kāi)發(fā)中很多需要javac 的程序依賴 JAVA_HOME環(huán)境變量.
如果是手工下載源碼安裝的JDK,很容易知道JAVA_HOME的目錄. 例如
whereis javac
javac: /usr/local/jdk1.8.0_74/bin/javac
那么對(duì)應(yīng)的 JAVA_HOME 為 /usr/local/jdk1.8.0_74.
而 YUM 安裝的 jdk, 不需要配置 PATH, 因?yàn)橐呀?jīng)自動(dòng)使用軟連接做好了。
echo $PATH javac -version
1. YUM安裝JDK
1.1 查找 可用的JDK
sudo yum list -y java*
然后可用看到類似下面這樣的輸出(省略部分…):
... Available Packages java-1.7.0-openjdk.x86_64 java-1.7.0-openjdk-demo.x86_64 java-1.7.0-openjdk-devel.x86_64 java-1.7.0-openjdk-javadoc.noarch java-1.7.0-openjdk-src.x86_64 java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-debug.x86_64 java-1.8.0-openjdk-demo.x86_64 java-1.8.0-openjdk-demo-debug.x86_64 java-1.8.0-openjdk-devel.x86_64 java-1.8.0-openjdk-devel-debug.x86_64 java-1.8.0-openjdk-headless.x86_64 java-1.8.0-openjdk-headless-debug.x86_64 java-1.8.0-openjdk-javadoc.noarch java-1.8.0-openjdk-javadoc-debug.noarch java-1.8.0-openjdk-src.x86_64 java-1.8.0-openjdk-src-debug.x86_64
根據(jù)需要, 安裝 JDK1.7 或者 JDK1.8, 當(dāng)前1.8已經(jīng)很穩(wěn)定了,推薦JDK1.8
1.2 安裝 JDK
安裝 JDK1.7 的命令如下:
sudo yum install -y java-1.7.0-openjdk*
安裝 JDK1.8 的命令如下:
sudo yum install -y java-1.8.0-openjdk*
2. 查找 JDK1.7 的 JAVA_HOME
2.1 查找 javac :
whereis javac
javac: /usr/bin/javac /usr/share/man/man1/javac.1.gz
可以看到, /usr/bin/javac, 一般來(lái)說(shuō) /usr/bin 默認(rèn)加入了 PATH 路徑,所以可以直接執(zhí)行.
然后一路跟蹤,看軟連接指向的位置( ll 是 ls -l 的快捷命令):
ll /usr/bin/javac
… /usr/bin/javac -> /etc/alternatives/javac
然后繼續(xù):
ll /etc/alternatives/javac
JDK1.7 大致是這個(gè)樣子:
… /etc/alternatives/javac -> /usr/lib/jvm/java-1.7.0-openjdk.x86_64/bin/javac
再繼續(xù):
ll /usr/lib/jvm/java-1.7.0-openjdk.x86_64/bin/javac
不再是軟連接。 結(jié)合這個(gè)地址可以分析得到, JAVA_HOME 的值應(yīng)該是 /usr/lib/jvm/java-1.7.0-openjdk.x86_64。
當(dāng)然,使用這個(gè)地址就可以了!
如果繼續(xù)下一步查看,可以看到具體的版本號(hào):
ll /usr/lib/jvm/java-1.7.0-openjdk.x86_64
… /usr/lib/jvm/java-1.7.0-openjdk.x86_64 -> java-1.7.0-openjdk-1.7.0.79.x86_64
使用下面的命令即可看到真實(shí)的目錄, 但一般不使用下面的具體版本號(hào),升級(jí)什么的可能會(huì)出問(wèn)題。
ll /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64
具體內(nèi)容類似下面這樣:
ll /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64
total 43952 -r--r--r-- 1 root root 1503 Apr 15 2015 ASSEMBLY_EXCEPTION drwxr-xr-x 2 root root 4096 Dec 25 2015 bin drwxr-xr-x 10 root root 4096 May 2 2015 demo drwxr-xr-x 3 root root 4096 May 2 2015 include drwxr-xr-x 4 root root 4096 May 2 2015 jre drwxr-xr-x 3 root root 4096 May 3 2015 lib -r--r--r-- 1 root root 19263 Apr 15 2015 LICENSE drwxr-xr-x 8 root root 4096 May 2 2015 sample -rw-r--r-- 1 root root 44775741 Apr 15 2015 src.zip drwxr-xr-x 2 root root 4096 May 2 2015 tapset -r--r--r-- 1 root root 172264 Apr 15 2015 THIRD_PARTY_README
2.2 將 JAVA_HOME 加入環(huán)境變量:
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64
當(dāng)然, export 只是臨時(shí)的。下次重啟后就沒(méi)了。
可以添加到rc文件,比如 /etc/rc.d/rc.local 之中。
當(dāng)然,可以使用 vim 編輯, 或者是 echo >> 命令
jhometip='# add JAVA_HOME' jhomescript='export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64' sudo echo $jhometip >> /etc/rc.d/rc.local sudo echo $jhomescript >> /etc/rc.d/rc.local
這樣一般就設(shè)置好了。
3. 查找 JDK1.8 的 JAVA_HOME
3.1 查找 javac :
whereis javac
javac: /usr/bin/javac /usr/share/man/man1/javac.1.gz
可以看到, /usr/bin/javac, 一般來(lái)說(shuō) /usr/bin 默認(rèn)加入了 PATH 路徑,所以可以直接執(zhí)行.
然后一路跟蹤,看軟連接指向的位置( ll 是 ls -l 的快捷命令):
ll /usr/bin/javac
… /usr/bin/javac -> /etc/alternatives/javac
然后繼續(xù):
ll /etc/alternatives/javac
JDK1.8 大致是這個(gè)樣子:
… /etc/alternatives/javac -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64/bin/javac
再繼續(xù):
ll /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64/bin/javac
不再是軟連接。 結(jié)合這個(gè)地址可以分析得到, JAVA_HOME 的值應(yīng)該是 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64。
使用這個(gè)地址就可以了!
如果繼續(xù)下一步查看:
ll /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64
具體內(nèi)容類似下面這樣:
total 16 drwxr-xr-x. 2 root root 4096 Sep 21 23:08 bin drwxr-xr-x. 3 root root 4096 Sep 21 23:08 include drwxr-xr-x. 4 root root 26 Sep 21 23:08 jre drwxr-xr-x. 3 root root 4096 Sep 21 23:08 lib drwxr-xr-x. 2 root root 4096 Sep 21 23:08 tapset
3.2 查看軟連接:
查看 jvm 目錄:
ll /usr/lib/jvm
則可以看到很多軟連接:
java -> /etc/alternatives/java_sdk java-1.8.0 -> /etc/alternatives/java_sdk_1.8.0 java-1.8.0-openjdk -> /etc/alternatives/java_sdk_1.8.0_openjdk java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64 java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64-debug java-openjdk -> /etc/alternatives/java_sdk_openjdk jre -> /etc/alternatives/jre jre-1.8.0 -> /etc/alternatives/jre_1.8.0
類似這樣的,不管 jre 開(kāi)頭的部分,可以看到 /etc/alternatives/java_sdk_1.8.0 這樣的目錄;
執(zhí)行 :
ll /etc/alternatives/java_sdk_1.8.0 ll /etc/alternatives/java_sdk
然后發(fā)現(xiàn), 這一堆鏈接都是指向上面的 JAVA_HOME 路徑:
/etc/alternatives/java_sdk_1.8.0 -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64
所以,可以使用其中之一作為 JAVA_HOME 環(huán)境變量的值。
說(shuō)明: 既然安裝了,基本上服務(wù)器上就不會(huì)頻繁變更. 如果有變更,則查找并修正即可。
3.3 將 JAVA_HOME 加入環(huán)境變量:
export JAVA_HOME=/etc/alternatives/java_sdk_1.8.0
當(dāng)然, export 只是臨時(shí)的。下次重啟后就沒(méi)了。
可以添加到rc文件,比如 /etc/rc.d/rc.local 之中。
當(dāng)然,可以使用 vim 編輯, 或者是 echo >> 命令
jhometip='# add JAVA_HOME' jhomescript='export JAVA_HOME=/etc/alternatives/java_sdk_1.8.0' sudo echo $jhometip >> /etc/rc.d/rc.local sudo echo $jhomescript >> /etc/rc.d/rc.local
這樣一般就設(shè)置好了。
最后如果Java中設(shè)置JAVA_HOME無(wú)效可以參考:http://www.dbjr.com.cn/article/122632.htm
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Java Fluent Mybatis實(shí)戰(zhàn)之構(gòu)建項(xiàng)目與代碼生成篇上
Java中常用的ORM框架主要是mybatis, hibernate, JPA等框架。國(guó)內(nèi)又以Mybatis用的多,基于mybatis上的增強(qiáng)框架,又有mybatis plus和TK mybatis等。今天我們介紹一個(gè)新的mybatis增強(qiáng)框架 fluent mybatis2021-10-10如何讓W(xué)in10實(shí)現(xiàn)Java文件的開(kāi)機(jī)自啟動(dòng)
這篇文章主要介紹了如何讓W(xué)in10實(shí)現(xiàn)Java文件的開(kāi)機(jī)自啟動(dòng),對(duì)于一些想要一直運(yùn)行的Java文件,就會(huì)造成每次系統(tǒng)更新之后的重啟導(dǎo)致Java文件無(wú)法繼續(xù)運(yùn)行。,需要的朋友可以參考下2019-06-06Springboot配置suffix指定mvc視圖的后綴方法
這篇文章主要介紹了Springboot配置suffix指定mvc視圖的后綴方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07基于SpringBoot和MongoDB實(shí)現(xiàn)實(shí)時(shí)分析和日志處理功能
實(shí)時(shí)分析和日志處理在現(xiàn)代應(yīng)用程序開(kāi)發(fā)中扮演著重要的角色,MongoDB是一個(gè)非常流行的NoSQL數(shù)據(jù)庫(kù),其高性能和靈活性使其成為實(shí)時(shí)分析和日志處理的理想選擇,本文將介紹如何使用?Spring?Boot?和?MongoDB?實(shí)現(xiàn)實(shí)時(shí)分析和日志處理的功能2023-06-06使用Java visualVM監(jiān)控遠(yuǎn)程JVM的流程分析
我們經(jīng)常需要對(duì)我們的開(kāi)發(fā)的軟件做各種測(cè)試, 軟件對(duì)系統(tǒng)資源的使用情況更是不可少,JDK1.6開(kāi)始自帶的VisualVM就是不錯(cuò)的監(jiān)控工具,本文給大家分享使用Java visualVM監(jiān)控遠(yuǎn)程JVM的問(wèn)題,感興趣的朋友跟隨小編一起看看吧2021-05-05圖解紅黑樹(shù)及Java進(jìn)行紅黑二叉樹(shù)遍歷的方法
紅黑樹(shù)問(wèn)題是各大計(jì)算機(jī)考研命題以及面試算法題目中的熱門(mén),接下來(lái)我們?yōu)榇蠹覉D解紅黑樹(shù)及Java進(jìn)行紅黑二叉樹(shù)遍歷的方法,需要的朋友可以參考下2016-05-05Spring boot自定義http反饋狀態(tài)碼詳解
這篇文章主要給大家介紹了Spring boot自定義http反饋狀態(tài)碼的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。2017-06-06