在學習Java的過程中,我們的一步都是下載Javajdk然后配置環境變量,而在查找相關的文章時,大多都是關於如何配置環境變量,對於為什么要配置,環境變量具體是什么,都模棱兩可不是十分詳細。那么我們為什么要配置環境變量,環境變量又是什么呢?它又是如何使用,做和作用的呢?就這個問題,在這里簡記下關於環境變量與Java環境變量配置的了解過程。
- 環境變量
首先我們要明白環境變量到底是什么,有什么作用?
環境變量(environment variables)一般是指在操作系統中用來指定操作系統運行環境的一些參數,如:臨時文件夾位置和系統文件夾位置等。
環境變量是在操作系統中一個具有特定名字的對象,它包含了一個或者多個應用程序所將使用到的信息。例如Windows和DOS操作系統中的path環境變量,當要求系統運行一個程序而沒有告訴它程序所在的完整路徑時,系統除了在當前目錄下面尋找此程序外,還應到path中指定的路徑去找。用戶通過設置環境變量,來更好的運行進程。
環境變量的主要作用
- 設置參數
環境變量相當於給系統或用戶程序設置參數,具體作用與具體設置的環境變量有關:
path環境變量,也是我們接觸最為常見的環境變量,path環境變量的作用就是告訴系統,當要求系統運行一個程序而沒有告訴它程序所在的完整路徑時,系統除了在當前目錄下面尋找此程序外,還應到哪些目錄下去尋找。而我們通常情況下配置的path變量,就是這個目錄的完整路徑。
這樣,我們就很容易明白了,願來path環境變量是為了方便我們在運行程序時的使用的,我們都知道,在使用doc來運行程序或打開某個文件時,我們必須鍵入某程序的完整路徑,才能運行它,而只要我們配置了環境變量,那么我們就可以省略這一步,系統會自動到我們事先設置好的目錄尋找對應的程序運行。方便人們的使用。
再如tc或vc++中,set include=path1;path2; 是告訴編譯程序到哪里去找.h類型的文件;當然不僅僅是指定什么路徑,還有其它的作用的,如set dircmd=/4 設置一個環境變量的作用是在使用dir命令時會把/4作為缺省的參數添加到你的dir命令之后,就像你的每個命令都加了/4參數,它實際上是給命令解釋程序command設置的一個環境變量,並且是給dir這個內部命令設置的。
- 軟件共用
很多朋友會在自己的計算機上安裝雙系統,例如C盤安裝Windows XP,D盤安裝Windows 7。可是某些軟件往往只在Windows XP系統中安裝,Windows 7系統中是無法正常使用的,比較麻煩卻有效的方法是再安裝一遍。當我們了解了環境變量中的用途后就可以很好解決雙系統的軟件共用問題。
- 系統運行
為什么在Windows XP中安裝了的軟件在Windows 7下無法運行呢(綠色軟件除外)?原因是安裝軟件時往往須要向系統目錄中復制某些文件,而使用另外一個系統時會由於缺少這些文件而無法運行。因此,我們可以通過設置環境變量的方法來解決這個問題。
參考:
環境變量-百科
現在,我們大致明白了一些關於環境變量的信息,並其也知道了關於path環境變量的主要作用和使用方式,到這里,也大致明白了為什么java要配置path環境變量了。
- Java jdk(Java Development kit)的構成
我們知道,配置環境變量,就是為了java jdk服務的。為了稍詳細的理解環境變量的配置和使用,所以我們有必要了解一下Java jdk的構成。
JDK是 Java語言的軟件開發工具包,主要用於移動設備、嵌入式設備上的java應用程序。JDK是整個java開發的核心,它包含了JAVA的運行環境(JVM+Java系統類庫)和JAVA工具。
- Java運行環境(Java runtime environment,JRE)
就是由Java虛擬機(Java virtual machine,JVM)以及一些標准函數庫組成。
所以在這里,我們就知道了JDK,JRE,JVM之間的關系了。
接下來我們看看安裝后jdk的目錄。
這里bin目錄就是Java的可執行文件,包括我們常會用到的java,javac,javadoc開發指令,我們程序的編譯執行使用到的指令程序都是在這個目錄下的,由於我這里使用的是Java最新的Java11,所以目錄結構有些不同,但大致內容是不會有太多改變的,包括Java工具(bin目錄下)類庫(lib目錄下)jvm虛擬機(lib目錄下)。
而我們在前面知道了,要想運行一個程序,我們首先要找到它的位置,然后才能運行,而在我們開發程序的編譯運行,也是這樣的,如果我們通過cmd命令行運行java.exe
的話,我們首先要進到當前的bin目錄下,然后運行java.exe,這樣會相當麻煩,每次運行都需要找一邊程序路徑。
-
Java環境變量的配置
通過上面的一系列了解,終於大概了解了為什么要配置Java的環境變量,我們知道,在編寫Java程序時必然要頻繁的使用到java bin目錄下的Java工具,但每次打開都需要先找路徑,實在是麻煩,並且,在使用第三方集成開發環境(IDE)時,編譯,運行等也可能會應為找不到路徑而報錯無法運行,。
然而,我們了解到了,path系統變量,它的作用正好可以解決我們的這個問題,如此,我們應當只需要找到Java的安裝路徑並找到其bin目錄下,將完整的bin目錄路徑copy一下,然后放到系統的path變量下就可以了,。 -
操作步驟
1.在微軟下方搜索框搜索系統,並點擊進入,然后找到並進入高級系統設置,然后再進入高級系統配置下方的環境變量設置。
2.現在我們就進入到環境變量的配置框了,這里上下兩個分別是當前用戶的環境變量,和系統的環境變量,有的用戶會使用多個用戶,用戶變量,就是只限於某用戶使用的變量設置,系統變量則適用於當前系統的所有用戶。
我這里設置的是系統變量,我們編輯path,然后將bin目錄路徑copy進去,也可以選擇使用瀏覽目錄,然后找到對應的bin目錄路徑,然后一路確定,環境變量就配好了,打開cmd,直接輸入Java,Javac等命令,都可以直接運行了。
做到這里,相信很多人都會有疑問,為什么網上,別人配的環境變量都不是這樣的,都沒這么簡單,需要設置什么JAVA_HOME變量之類的,這又是為什么呢
我們在前面知道了配置path變量的原理,只需要將完整的路徑導入過來就可以了。而為什么幾乎所有的Java環境變量配置的教程都不是這么簡單的呢,需要單獨定義變量,且變量固定的JAVA_HOME變量。
我們通過觀察發現,其實JAVA_HOME的值就是Java bin目錄的上一級目錄,即jdk的安裝目錄,而下面的path則使用‘%%’引用其值然后再加上\bin;這說明,其實原理上還是一樣的使用bin目錄的完整路徑。那么這里到底為什么要大費周折單獨將jdk安裝路徑抽出單獨定義成一個變量呢,還是一個名稱固定的變量?
最后通過查詢,學習,終於了解到,這是因為在之后的Javaweb學習過程中,搭建和使用tomcat服務器,其需要訪問到相關目錄下的某些文件或資源,具體我暫時也不太清楚,而tomcat所設置的訪問變量就是JAVA_HOME,是通過這個變量來訪問jdk路徑的。因為每個人安裝jdk的位置都不同,所以想要調用,只能通過變量賦值的方式,變量由他們頂喲,由我們賦值,就解決了這個問題,相信不知tomca,其他的一些第三方資源應當也是通過這種方式來訪問某些路徑的資源的。所以在編程人員學習Java過程配置環境變量時,一般都時使用變量賦值的形式來配置環境變量的。當然如果你只是簡單的使用,不會使用到javaweb方面的使用,完全可以不用這樣,只需要簡單的將路徑導入就行。
更新時間:
2019-4-1
16:38