JAVA_HOME 與 PATH 環境變量
一、概述
在本教程中,我們將探討使用JAVA_HOME
和PATH
環境變量之間的主要區別。儘管大多數 Java 程序都需要這兩個變量才能成功編譯和運行,但每個變量都有不同的用途。讓我們一一看看。
2. JAVA_HOME
環境變量
JAVA_HOME
環境變量指向 JDK 安裝目錄。隨後,其他依賴Java的程序可以使用這個變量來訪問JDK/JRE路徑。
通常,Apache Tomcat 和其他 Java EE 應用程序服務器以及 Maven 或 Gradle 等構建工具使用JAVA_HOME
作為命名約定來定位 Java。
在大多數情況下, JAVA_HOME
被設置為指向 JDK 路徑而不是 JRE。這對於需要訪問編譯器、調試器、文檔生成器等的現代開發工具很有用。
以下是我們如何通過命令行設置JAVA_HOME
變量:
set JAVA_HOME=C:\Program Files\Java\jdk-17
或者,我們也可以通過系統設置來設置這個變量。 Windows 用戶可以在System Properties -> Advanced -> Environment Variables
下找到此設置。
PATH
環境變量
操作系統使用PATH
環境變量來查找要運行的本機可執行程序。
在 Windows 中,可執行程序以.exe
擴展名結尾。一旦我們將可執行程序的目錄指向PATH
,我們就可以在命令行中調用它而無需指定其完整路徑。
為了運行 Java 程序,我們需要在PATH
變量中列出 JDK 安裝目錄以及bin
目錄。 bin
目錄包含 Java 可執行文件。
我們可以通過命令行設置PATH
環境變量:
set PATH=C:\Program Files\Java\jdk-17\bin
如前一節所述,我們可以通過系統設置實現相同的目的。通常, PATH
變量包含指向不同目錄的多個路徑。因此,此設置不限於 Java。
4. 一起使用JAVA_HOME
和PATH
現代程序足夠智能,可以選擇JAVA_HOME
或PATH
變量之一來成功運行。但是,一些其他程序(例如 Eclipse)需要PATH
變量才能啟動。
作為最佳實踐,始終建議同時設置JAVA_HOME
和PATH
環境變量。這樣,我們就可以消除使用新舊程序之間的兼容性問題。
另外,為了避免重複 JDK 安裝路徑兩次,我們可以在聲明中重用這些變量之一:
set PATH=%JAVA_HOME%\bin
因此,此設置還消除了在 JDK 安裝目錄發生更改時更改所有受影響的環境變量的風險。
五、常見問題
某些程序依賴於特定變量來啟動。例如,如果未設置JAVA_HOME
,則依賴此變量的程序可能找不到 JDK 。
隨後,Tomcat、Maven、Gradle等程序可能無法正常執行。同樣,同樣的問題適用於依賴PATH
變量的程序。
具體來說,當我們嘗試從命令行運行 Java 程序時,操作系統會查看PATH
變量來定位和運行 JVM。如果PATH
變量上沒有 JDK,命令將終止並出現錯誤:
C:\Users\palan>java HelloWorld
'java' is not recognized as an internal or external command,
operable program or batch file.
另一個常見問題是PATH
變量中有不同的 JDK 版本。在這種情況下,操作系統會考慮執行PATH
變量中第一次出現的 JDK 。但是,最好刪除PATH
變量中的多個版本,以免在後期出現混淆。
六,結論
在本文中,我們探討了使用JAVA_HOME
和PATH
環境變量之間的區別。
總而言之, JAVA_HOME
環境變量主要由作為開發工具的程序使用。另一方面,面向用戶的應用程序需要PATH
環境變量來了解 JVM 的位置。