2021-05-12 14:32:11
Linux系統入門教學:如何在 Linux 上自動設定 JAVA_HOME 環境變數
問題:我需要在我的 Linux 機器上編譯 Java 程式。為此我已經安裝了 JDK (Java Development Kit),而現在我正試圖設定 JAVA_HOME 環境變數使其指向安裝好的 JDK 。關於在 Linux 上設定 JAVA_HOME 環境變數,最受推崇的辦法是什麼?
許多 Java 程式或基於 Java 的整合式開發環境 (IDE)都需要設定好 JAVA_HOME 環境變數。該變數應指向 Java 開發工具包 (JDK)或 Java 執行時環境 (JRE)的安裝目錄。JDK 不僅包含了 JRE 提供的一切,還帶有用於編譯 Java 程式的額外的二進位制程式碼和庫檔案(例如編譯器,偵錯程式及 JavaDoc 文件生成器)。JDK 是用來構建 Java 程式的,如果只是執行已經構建好的 Java 程式,單獨一份 JRE 就足夠了。
當您正試圖設定 JAVA_HOME 環境變數時,麻煩的事情在於 JAVA_HOME 變數需要根據以下幾點而改變:(1) 您是否安裝了 JDK 或 JRE;(2) 您安裝了哪個版本;(3) 您安裝的是 Oracle JDK 還是 Open JDK。
因此每當您的開發環境或執行時環境發生改變(例如為 JDK 更新版本)時,您需要根據實際情況調整 JAVA_HOME 變數,而這種做法是繁重且缺乏效率的。
以下 export
命令能為您自動設定 JAVA_HOME 環境變數,而無須顧及上述的因素。
若您安裝的是 JRE:
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))
若您安裝的是 JDK:
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac))))
根據您的情況,將上述命令中的一條寫入 ~/.bashrc(或 /etc/profile)檔案中,它就會永久地設定好 JAVA_HOME 變數。
注意,由於 java 或 javac 可以建立起多個層次的符號連結,為此"readlink -f"命令是用來獲取它們真正的執行路徑的。
舉個例子,假如您安裝的是 Oracle JRE 7,那麼上述的第一條 export 命令將自動設定 JAVA_HOME 為:
/usr/lib/jvm/java-7-oracle/jre
若您安裝的是 Open JDK 第8版,那麼第二條 export 命令將設定 JAVA_HOME 為:
/usr/lib/jvm/java-8-openjdk-amd64
簡而言之,這些 export 命令會在您重灌/升級您的JDK/JRE,或更換預設 Java 版本時自動更新 JAVA_HOME 變數。您不再需要手動調整它。
via: http://ask.xmodulo.com/set-java_home-environment-variable-linux.html
作者:Dan Nanni 譯者:Ricky-Gong 校對:wxy
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-11/125266.htm
相關文章