溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何查找YUM安裝的JAVA_HOME環(huán)境變量詳解

發(fā)布時間:2020-10-22 10:16:10 來源:腳本之家 閱讀:172 作者:鐵錨 欄目:編程語言

前言

開發(fā)中很多需要javac 的程序依賴 JAVA_HOME環(huán)境變量.

如果是手工下載源碼安裝的JDK,很容易知道JAVA_HOME的目錄. 例如

whereis javac
javac: /usr/local/jdk1.8.0_74/bin/javac

那么對應的 JAVA_HOME 為 /usr/local/jdk1.8.0_74.

而 YUM 安裝的 jdk, 不需要配置 PATH, 因為已經自動使用軟連接做好了。

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, 當前1.8已經很穩(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, 一般來說 /usr/bin 默認加入了 PATH 路徑,所以可以直接執(zhí)行.

然后一路跟蹤,看軟連接指向的位置( ll 是 ls -l 的快捷命令):

ll /usr/bin/javac
… /usr/bin/javac -> /etc/alternatives/javac

然后繼續(xù):

ll /etc/alternatives/javac

JDK1.7 大致是這個樣子:

… /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

不再是軟連接。 結合這個地址可以分析得到, JAVA_HOME 的值應該是 /usr/lib/jvm/java-1.7.0-openjdk.x86_64。

當然,使用這個地址就可以了!

如果繼續(xù)下一步查看,可以看到具體的版本號:

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

使用下面的命令即可看到真實的目錄, 但一般不使用下面的具體版本號,升級什么的可能會出問題。

ll /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64

具體內容類似下面這樣:

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

當然, export 只是臨時的。下次重啟后就沒了。

可以添加到rc文件,比如 /etc/rc.d/rc.local 之中。

當然,可以使用 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

這樣一般就設置好了。

3. 查找 JDK1.8 的 JAVA_HOME

3.1 查找 javac :

whereis javac
javac: /usr/bin/javac /usr/share/man/man1/javac.1.gz

可以看到, /usr/bin/javac, 一般來說 /usr/bin 默認加入了 PATH 路徑,所以可以直接執(zhí)行.

然后一路跟蹤,看軟連接指向的位置( ll 是 ls -l 的快捷命令):

ll /usr/bin/javac
… /usr/bin/javac -> /etc/alternatives/javac

然后繼續(xù):

ll /etc/alternatives/javac

JDK1.8 大致是這個樣子:

… /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

不再是軟連接。 結合這個地址可以分析得到, JAVA_HOME 的值應該是 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64。

使用這個地址就可以了!

如果繼續(xù)下一步查看:

ll /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64

具體內容類似下面這樣:

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 開頭的部分,可以看到 /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)境變量的值。

說明: 既然安裝了,基本上服務器上就不會頻繁變更. 如果有變更,則查找并修正即可。

3.3 將 JAVA_HOME 加入環(huán)境變量:

export JAVA_HOME=/etc/alternatives/java_sdk_1.8.0

當然, export 只是臨時的。下次重啟后就沒了。

可以添加到rc文件,比如 /etc/rc.d/rc.local 之中。

當然,可以使用 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

這樣一般就設置好了。

最后如果Java中設置JAVA_HOME無效可以參考:https://www.jb51.net/article/122632.htm

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI