如何在 Ubuntu Linux 中正確地設(shè)置 JAVA_HOME 變量
如果你 在 Ubuntu 上運(yùn)行 Java 程序 ,使用 Eclipse、Maven 或 Netbeans 等等,你將需要將 JAVA_HOME
環(huán)境變量設(shè)置為正確的路徑。否則,你的系統(tǒng)將會(huì)向你控訴 “java_home 環(huán)境變量沒(méi)有設(shè)置”。
在這篇初學(xué)者教程中,我將向你展示在 Ubuntu 上正確地設(shè)置 JAVA_HOME
變量的步驟。這些步驟應(yīng)該也適用于大多數(shù)的其它的 Linux 發(fā)行版。
設(shè)置過(guò)程包含這些步驟:
- 確保已安裝 Java 開發(fā)工具包(JDK)。
- 查找 JDK 可執(zhí)行文件的正確的位置。
- 設(shè)置
JAVA_HOME
環(huán)境變量,并永久更改它。
步驟 1: 核查 JDK 是否已經(jīng)安裝
核查 Java 開發(fā)工具包(JDK)是否已經(jīng)安裝在你的 Linux 系統(tǒng)上的最簡(jiǎn)單的方法是運(yùn)行這個(gè)命令:
javac --version
上面的命令將核查 Java 編譯器的版本。如果已經(jīng)安裝了 Java 編譯器,它將顯示 Java 版本:
Java Compiler is installed
如果上面的命令顯示像這樣未找到 javac
命令的錯(cuò)誤信息,你得先安裝 JDK :
Java Compiler is not installed
如果在你的系統(tǒng)上并沒(méi)有安裝 Java 編譯器,使用這條命令來(lái)安裝 Java 開發(fā)工具包 (JDK):
sudo apt install default-jdk
這將在你當(dāng)前的 Ubuntu 版本中安裝默認(rèn)的 Java 版本。如果你需要一些其它版本的 Java 版本,那么你必須 在 Ubuntu 中安裝 Java 時(shí) 具體指出它的版本。
在你確保 Java 編譯器存在于你的系統(tǒng)之中后,接下來(lái)就到了查找其位置的時(shí)候了。
步驟 2: 獲取 JDK 可執(zhí)行文件(Java 編譯器)的位置
可執(zhí)行文件通常位于 /usr/lib/jvm
目錄之中。但我不會(huì)讓你來(lái)玩一個(gè)猜謎游戲,讓我們來(lái)找出 Java 可執(zhí)行文件的路徑。
使用 which 命令 來(lái)獲取 Java 編譯器可執(zhí)行文件的位置:
which javac
在這里的問(wèn)題是,它給出的位置實(shí)際上是一個(gè) 符號(hào)鏈接 。你將需要按照下圖執(zhí)行幾次:
最簡(jiǎn)單的方法是直接使用下面這條命令跟隨符號(hào)鏈接來(lái)以獲取實(shí)際的可執(zhí)行文件:
readlink -f `which java`
readlink
命令會(huì)跟隨一個(gè)符號(hào)鏈接。我在 which java
的外側(cè)使用 readlink
將會(huì)使用 which java
的輸出來(lái)替換要檢查的符號(hào)鏈接,這被稱之為命令替換。因此,在這個(gè)實(shí)例中,上面的命令大體上相當(dāng)于 readlink -f /usr/bin/java
。
在我的示例中,可執(zhí)行文件的位置是 /usr/lib/jvm/java-11-openjdk-amd64/bin/java
。對(duì)你來(lái)說(shuō)可能會(huì)不一樣。在你的系統(tǒng)中,復(fù)制上述命令所獲取的正確的路徑。你知道,你可以 在 Ubuntu 的終端中復(fù)制和粘貼 。
步驟 3: 設(shè)置 JAVA_HOME 變量
現(xiàn)在,你已經(jīng)獲取了位置,使用它來(lái)設(shè)置 JAVA_HOME
環(huán)境變量:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java
核查 JAVA_HOME
目錄的值:
echo $JAVA_HOME
嘗試在同一個(gè)終端中運(yùn)行你的 Java 程序或工程,并查看它是否工作。
這尚未結(jié)束。你剛剛聲明的 JAVA_HOME
環(huán)境變量是臨時(shí)的。如果你關(guān)閉這個(gè)終端或開始一個(gè)新的會(huì)話,它將會(huì)再次變成空的。
為了“永久地”設(shè)置 JAVA_HOME
變量,你應(yīng)該將其添加到你的家目錄中的 .bashrc
文件中。
你可以 在 Linux 終端中使用 Nano 編輯器來(lái)編輯文件。 如果你不想使用它,并想采取一種簡(jiǎn)單的復(fù)制和粘貼的方法,使用下面的命令:
首先備份你的 .bashrc
文件(以防萬(wàn)一你把它弄壞了,你還可以將其再恢復(fù)回來(lái)):
cp ~/.bashrc ~/.bashrc.bak
接下來(lái),使用 echo 命令來(lái)追加 在這一節(jié)開頭使用的 export
命令。你應(yīng)該適當(dāng)?shù)馗南旅娴拿?,以便其正確地使用你的系統(tǒng)所顯示的路徑。
echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java" >> ~/.bashrc
驗(yàn)證它已經(jīng)被正確地添加到文件的結(jié)尾處:
tail -3 ~/.bashrc
上面的 tail 命令 將顯示所具體指定文件的最后 3 行。
這里是上面的三個(gè)命令的全部的輸出:
現(xiàn)在,即使你退出會(huì)話或重新啟動(dòng)系統(tǒng),JAVA_HOME
環(huán)境變量都仍將設(shè)置為你所具體指定的值。這就是你所想要的,對(duì)吧?
注意,如果你將來(lái)更改默認(rèn)的 Java 版本,你將需要更改 JAVA_HOME
環(huán)境變量的值并將其指向正確的可執(zhí)行文件的路徑。
我希望這篇教程不僅會(huì)幫助你設(shè)置 JAVA_HOME
環(huán)境變量,也會(huì)教會(huì)你如何完成這項(xiàng)工作。