說到環境變量,大家可能都很熟悉,但是對於開始學 java 的人,甚至到學了一段 java 時間的人,都可能不是很懂,為啥要配置環境變量,怎么配置環境變量。下面,我將為大家講到為啥要配環境變量,已經該怎么配,環境變量到底是個什么東西?
一 . 什么是環境變量?
1.1 用戶變量與系統變量
右鍵我的電腦,單擊“屬性”;在出現的系統框中點擊“高級系統設置”,你會進入一個系統屬性框,選擇里面的環境變量,你就會看到下面的框:
從上圖我們可以看到環境變量包括用戶變量和系統變量:
- 用戶變量是指我們當前登入這台電腦的用戶,比如管理員用戶,普通用戶。在里面配置的環境變量,只對這個用戶有效,一旦用戶進行了更換,這環境變量將改為新登錄用戶的環境變量。
- 系統變量是指這這台電腦的配置的環境變量,對所有用戶都生效,不管你換哪個用戶,都是生效的。
我們的 java 環境變量應該是要配置在系統環境變量里面才能保證對每一個用戶都生效。
1.2 Path環境變量有啥用 ?
-
你們有沒有發現,在 cmd 命令里面輸入 notepad(系統自帶的記事本應用)按回車,就能打開記事本,此時我們所在的目錄是在D盤的根目錄 。
-
windows 圖標鍵和 R 鍵一起按彈出一個運行窗口,在里面輸入 cmd,然后點擊打開就會彈出一個 cmd 窗口。
3. 我們進入D盤根目錄,發現並沒有發現 notepad.exe 的應用程序,卻能打開這個應用
4. 然后,我的電腦裝了 QQ.exe,同樣也在 cmd 中輸入 QQ.exe看看能不能打開這個應用
原因是,你想讓系統運行一個程序,你首先得告訴它這個程序在哪。
所以我們需要將QQ的可執行文件位置告訴系統,QQ可執行文件位置如下
所以我們在dos界面中找到QQ的可執行文件的路徑,輸入QQ,QQ就打開了:
5.那么,為啥 notepad 能在沒有這個應用的目錄下執行這個命令,打開這個應用呢 ?
6.其中的奧秘就在於 path 環境變量中有 notepad.exe 應用的路徑
7.那么,我們能不能讓我們的QQ也實現這個功能呢,可以在沒有 QQ.exe 應用的目錄打開QQ呢?
於是英雄登場,一個一勞永逸的方法就是將QQ.exe的文件路徑放在Path環境變量里面,以后要打開QQ就不用每次進入該路徑了,
8.這個毋庸置疑,肯定是能實現的,那么我們來到系統的 path 環境變量中,首先選擇 path,然后點擊編輯
9. 點擊編輯之后會彈出一個編輯環境變量的窗口,下圖是配上QQ.exe路徑時的path變量
10. 接着我們dos中不給路徑直接輸入QQ,就可以直接打開QQ了:
1.3 總結
path變量的作用是可以讓我們在沒有這個應用的路徑下面打開我們需要打開的應用,前提是這個應用得在環境變量里面配置了路徑。
二、為什么Java要配置環境變量?
2.1 為什么要配置jdk的環境變量
- 因為如果我們沒有配置 java 的環境變量,那么沒有在jdk/bin目錄下的java類代碼運行不了 javac.exe(編譯器)和java.exe(運行)(具體關於jdk和javac的知識請點這里)。換句話說:就是如果沒有配置Java環境變量,那么你所有的Java代碼必須放在jdk/bin目錄(同 javac.exe和java.exe同一個目錄)下才能編譯和運行。
- 這時我們可以在我們 jdk 的安裝目錄下運行這個程序,但是我們要把一個 java 文件編譯成 class 文件,他會生成在和 java 同一個目錄下,也就是在 jdk 的安裝目錄下,這樣一旦要編譯的 java 文件多了起來,我們的這個目錄下將會有很多的 java 文件和 class 文件,這樣明顯是不符合常理的。
- 所以我們需要把 jdk 的目錄配置在 path 里面,這樣就能在任何目錄下運行 java 程序了,而不會讓 jdk 的安裝目錄里面多了很多我們的 java 文件和 class 文件
2.2 如何配置Path
-
把 jdk 安裝目錄下的 bin 目錄的路徑配置到 path 環境變量里面
- 此時我們已經配置好了 path 環境變量,保存下配置。那么來測試一下,在D盤的根目錄新建一個 HelloWord 程序,看看能不能編譯和運行
1 public class HelloWord{ 2 public static void main(String[] args){ 3 System.out.println("Hello word"); 4 } 5 }
-
這樣我們的環境變量就已經初步的配置好了。但是還有地方需要修改。
-
如果我們需要配置多個 jdk 的環境變量,我們也需要把每個目錄都添加到 path 中嗎?這樣 path 是不是就看起來很亂了呢?這時候,我們就需要一個 JAVA_HOME 變量了。
2.3 配置JAVA_HOME變量
JAVA_HOME 環境變量的配置步驟如下:
- 我們在系統變量這里點擊新建
- 點擊新建后彈出一個新建系統變量的窗體,然后把變量名填寫為 JAVA_HOME ,把變量值填寫成你 jdk 的安裝目錄(注意,不用 bin 目錄),然后點擊確定
- 然后再編輯path環境變量,把剛才的配置的 jdk 的變量改成 %JAVA_HOME%\bin
- 保存配置,打開一個 cmd 窗口,輸入 path,可以看到,我們配置的環境變量的 %JAVA_HOME% 已經替換成剛才 JAVA_HOEM 變量的變量值了,而且 java 程序也能夠運行
為啥要配置 JAVA_HOME,一定要用 JAVA_HOME 命名嗎?
- 我們電腦如果裝了多個版本的 jdk,我們只需要在 JAVA_HOME 中把 jdk 的目錄添加進去,而不用在 path 里面加 bin 目錄的路徑
- 因為有些開發工具,如(eclipse,IDEA, tomcat)都會去掃描你的JAVA_HOME變量,看看你的電腦裝了幾個版本的 jdk。
- 可以不用 JAVA_HOME 這個名字當參數名,那么有些軟件啟動需要 JAVA_HOME ,例如 tomcat,當你不用這個命名,你就需要去修改 tomcat 的 bin 目錄下的 catalina.bat 文件,才能啟動 tomcat,何必呢?
三. 配置 CLASSPATH 變量
我們配置 path 環境變量,只是告訴我們的電腦,我們裝了 java ,這個應用放在哪里;而 CLASSPATH 就相當於 java 虛擬機的 path,它是用來告訴我們需要運行的 .class 文件時放在哪里。
配置CLASSPATH和JAVA_HOME配置類似,點擊新建變量,變量名為CLASSPATH:
一定要配置 CLASSPATH 變量嗎?一定要用 CLASSPATH 命名嗎?
- jdk1.5 之后就不用再配置 CLASSPATH了,但是我們為了保證向下兼容 ,所以建議還是配置上為好。
- 在上面 JAVA_HOME 的圖中,Tomcat 也是會自動讀取系統變量里面的 CLASSPATH。
[轉]https://blog.csdn.net/qq_36582604/article/details/88120308?spm=1001.2014.3001.5501