Linux 上自動化佈建 JAVA_HOME 環境變數的方法

來源:互聯網
上載者:User

我需要在 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 變數。您不再需要手動調整它。


Linux下修改/設定環境變數JAVA_HOME 步驟

1. 永久修改,對所有使用者有效

    # vi /etc/profile

    //按鍵盤[Shift + g], 在profile檔案最後添加下面的內容:

    export JAVA_HOME = /home/myuser/jdk1.7.0_03
    export PATH = $JAVA_HOME/bin:$PATH

    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    [注]:修改檔案後如果想馬上生效,還要運行 #source /etc/profile

 

2. 永久修改,對單一使用者有效

    //修改使用者目錄下的.bash_profile檔案

     $ vi /home/myuser/.bash_profile

    //在檔案最後添加下面的內容
     export JAVA_HOME = /home/myuser/jdk1.7.0_03
     export PATH = $JAVA_HOME/bin:$PATH

     export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

     [注]:修改檔案後如果想馬上生效,還要運行 #source /home/myuser/.bash_profile

 

3. 只對當前bash /shell 生效

    $ export JAVA_HOME = /home/myuser/jdk1.7.0_03

    $ export PATH = $JAVA_HOME/bin:$PATH

    $ export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.