什麼是環境變量?爲什麼java要配置環境變量?

本文是將https://blog.csdn.net/qq_37872792/article/details/80642985 與 https://blog.csdn.net/Pre_waist_L/article/details/79696507兩篇文章總結而成,此外,大家還可以參考這篇博文https://blog.csdn.net/mylittleone/article/details/79651536特此申明!

 

一 . 什麼是環境變量?

 

1.1  用戶變量與系統變量

我們首先先找到修改系統變量的地方:

右鍵我的電腦,單擊“屬性”;在出現的系統框中點擊“高級系統設置”,你會進入一個系統屬性框,選擇裏面的環境變量,你就會看到下面的框:

從上圖我們可以看到環境變量包括用戶變量和系統變量:

  • 用戶變量是指我們當前登入這臺電腦的用戶,比如管理員用戶,普通用戶。在裏面配置的環境變量,只對這個用戶有效,一旦用戶進行了更換,這環境變量將改爲新登錄用戶的環境變量。
  • 系統變量是指這這臺電腦的配置的環境變量,對所有用戶都生效,不管你換哪個用戶,都是生效的

​    

1.2  Path路徑

我們先明確兩個概念:

  1. path路徑:用來指定可執行文件的搜索路徑,也就是後綴名爲.exe文件
  2. .exe文件:你桌面上快捷方式的根本,點開快捷方式相當於點開改文件;

通過一個QQ例子來講解:

首先安裝好QQ,我們不用快捷方式打開它,而是通過cmd進入dos界面,直接輸入QQ,出現下面的圖片

原因是,你想讓系統運行一個程序,你首先得告訴它這個程序在哪,不然系統:“WTF”;

所以我們需要將QQ的可執行文件位置告訴系統,QQ可執行文件位置如下

所以我們在dos界面中找到QQ的可執行文件的路徑,輸入QQ,QQ就打開了:

但是,你關掉Dos後重新進入,輸入QQ發現,又是上面的問題,這就意味着你要從Dos打開QQ的話,必須每次進入QQ.exe文件所在路徑,每次都得給系統QQ.exe文件的絕對路徑,這樣很麻煩

於是英雄登場,一個一勞永逸的方法就是將QQ.exe的文件路徑放在Path環境變量裏面,以後要打開QQ就不用每次進入該路徑了,下圖是配上QQ.exe路徑時的path變量

接着我們dos中不給路徑直接輸入QQ,就可以直接打開QQ了:

 

1.3  總結

path變量的作用是可以讓我們在沒有這個應用的路徑下面打開我們需要打開的應用,前提是這個應用得在環境變量裏面配置了路徑

 

 

二.    爲什麼java要配置環境變量

 

2.1  爲什麼要配置jdk的環境變量

我們爲什麼要配置java(jdk)的環境變量呢

1. 因爲我們沒有配置 jdk的環境變量,所以在沒有在jdk/bin目錄下是運行不了 java.exe和javac.exe(具體關於jdk和javac的知識請點這裏

那好辦,我們可以去jdk/bin目錄下運行java程序啊,但我們在bin目錄下通過啓動java.exe,然後再通過javac.exe要把一個java文件編譯成class文件,這個class文件就生成在jdk/bin目錄裏了,這樣不好,所以我們需要把jdk配置到path裏面,這樣在任何目錄下都能運行java.exe和javac.exe來編譯Java文件了,這樣就不會讓jdk/bin目錄裏有許多我們的Java文件和class文件。

 

2.2   如何配置

和上面一樣,把jdk/bin目錄加到path環境中去

       

配置完成後我們測試下:

在D盤的根目錄新建一個HelloWorld程序,然後在dos裏面運行

 

 

2.3  配置JAVA_HOME變量

如果我們需要配置多個 jdk 的環境變量,我們也需要把每個目錄都添加到 path 中嗎?這樣 path 是不是就看起來很亂了呢?這時候,我們就需要一個 JAVA_HOME 變量了

在上面的編輯環境變量裏面,我們有發現有些使用 %SystemRoot%system32 的變量值,但是我們在 cmd 中查看 path 環境變量的時候卻沒有發現有 %SystemRoot%system32 的字樣,而是有個和他很像的 C:WINDOWSsystem32, 那是因爲我們系統存在一個 SystemRoot 爲變量名的變量,變量值是C:WINDOWS,而這個是隱藏的,我們無法看到,我們可以把這個變量名理解成我們 java 中的 int a = 1; int b = a; 後邊的b是等於 a,而我們看到的效果是 a = 1,所以 b = 1;而不是 b = a 變量名.

配置步驟如下:

  1. 我們在系統變量這裏點擊新建:     
  2. 點擊新建後彈出一個新建系統變量的窗體,然後把變量名填寫爲 JAVA_HOME ,把變量值填寫成你 jdk 的安裝目錄(注意,不用 bin 目錄),然後點擊確定 
  3. 然後再編輯path環境變量,把剛纔的配置的 jdk 的變量改成 %JAVA_HOME%binhjbl25.png
  4. 保存配置,打開一個 cmd 窗口,輸入 path,可以看到,我們配置的環境變量的 %JAVA_HOME% 已經替換成剛纔 JAVA_HOEM 變量的變量值了,而且 java 程序也能夠運行

 

爲啥要配置 JAVA_HOME,一定要用 JAVA_HOME 命名嗎?

  1. 我們電腦如果裝了多個版本的 jdk,我們只需要在 JAVA_HOME 中把 jdk 的目錄添加進去,而不用在 path 裏面加 bin 目錄的路徑
  2. 因爲有些開發工具,如(eclipse,IDEA, tomcat)都會去掃描你的JAVA_HOME變量,看看你的電腦裝了幾個版本的 jdk。
  3. 可以不用 JAVA_HOME 這個名字當參數名,那麼有些軟件啓動需要 JAVA_HOME ,例如 tomcat,當你不用這個命名,你就需要去修改 tomcat 的 bin 目錄下的 catalina.bat 文件,才能啓動 tomcat,何必呢?
    hjbl27.png

 

 

三.  配置 CLASSPATH 變量

我們配置 path 環境變量,只是告訴我們的電腦,我們裝了 java ,這個應用放在哪裏;而 CLASSPATH 就相當於 java 虛擬機的 path,它是用來告訴我們需要運行的 .class 文件時放在哪裏。

配置CLASSPATH和JAVA_HOME配置類似,點擊新建變量,變量名爲CLASSPATH:

 

我們一定要配置 CLASSPATH 變量嗎?一定要用 CLASSPATH 命名嗎?

  1. jdk1.5 之後就不用再配置 CLASSPATH了,但是我們爲了保證向下兼容 ,所以建議還是配置上爲好。
  2. 在上面 JAVA_HOME 的圖中,tomcat 也是會自動讀取系統變量裏面的 CLASSPATH。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章