什么是环境变量?环境变量配置,jdk8的path环境变量配置,各个版本下jdk结构的变化以及环境变量配置的阐述,java命令执行三个不同目录下的java.exe说明
說明:如果只想配置java中jdk的path環境變量直接跳到三即可。
一,什么是環境變量?
一般是指在操作系統中用來指定操作系統運行環境的一些參數;如文件夾的位置。
環境變量是在操作系統中是一個特定名稱的對象,它包含一個或者多個應用使用到的信息。
舉例:Windows和DOS操作系統下的path變量:當要運行一個程序而沒有告訴它一個完整的路徑時;系統會先在當前目錄下尋找此程序,如果沒有還會繼續到path變量中的路徑去找,為了方便運行程序,我們就要在Windows下設置path變量。
二,環境變量的配置(以上一章簡化打開微信的案例演示)
1在控制面板或者是此電腦找到高級系統設置->屬性然后單擊到如圖面板,找到高級下面的環境變量點擊打開
2在當前的使用的用戶環境變量下或者是系統環境變量下找到path然后點擊編輯 如圖,
在當前使用下的用戶環境變量和系統環境下配置環境變量的區別是:在當前使用的用戶環境變量配置環境變量只能是當前的用戶可以使用,換成其他用戶就不能再使用,系統變量配置不管任何用戶都可以使用。配置的方式一模一樣。(這里以當前用戶的環境變量配置為例)
?3(第1種方法)點擊編輯出現編輯環境變量面板,點擊新建輸入打開微信文件所在的路徑,按確定返回到環境變量面板,按最下面的確定,一直確實下去就配置完成了,
適用于獨立的軟件應用,不和其他應用關聯的程序
?(第2種方法)在當前使用用戶的變量或者系統變量下 找到path點擊新建,
然后出現新建用戶變量面板(如圖),輸入變量名:(隨便取名字,建議取成大寫應用的英文名稱_HOME);輸入變量值(應用所在位置的路徑,建議直接粘貼復制避免出錯),然后按下面的確定
?
然后和第一種方式一樣找到path點擊編輯,出現編輯環境變量面板,找到新建 輸入%變量名%按確定返回到到環境變量面板,按最下面的確定就配置完成了。
?
4 然后我們來驗證一下是否配置成功,打開cmd窗口,在任意盤符輸入WeChat,都能打開微信,說明配置成功,其他應用也一樣的操作步驟。兩種方法都能成功說明配置成功,
?三,jdk8的path環境變量配置(重要)
?1,配置前需要下載安裝jdk,每個jdk的環境變量可能稍微不同,這里配置以jdk8版本為例
? 到 www.oracle.com下載JDK? 然后直接安裝 ,可以改變你要安裝的路徑(建議路徑不要出現中文和空格,以免以后出現bug)?選擇安裝目錄 安裝過程中會出現兩次安裝提示 。第一次是安裝 jdk ,第二次是安裝 jre 。安裝完成后就可以配置環境變量了
2 .找到 計算機→屬性→高級系統設置→高級→環境變量→系統變量(或者當前用戶下的環境變量)→新建 JAVA_HOME 變量 。變量值為jdk安裝路徑,按確定
在找到path點擊編輯找到新建輸入%JAVA_HOME%\bin按確定返回到編輯環境變量面板按確定即可
?
3 當輸入java -version出現版本號,輸入javac時沒有提示不是命令時如圖(java與-之間有個空格)說明配置成功。
?但是這并不是最完整的配置,要更多的使用jdk的功能還要配置jdk自帶的jre,只需在編輯環境變量面板中在配置jdk(%JAVA_HOME%\bin)下新建%JAVA_HOME%\jre\bin確定返回到環境變量面板再確定即可,這里最完整的配置就完成了
四 各個版本jdk結構的變化以及環境變量配置的闡述
1,在jdk5之前還要配置CLASSPATH變量;
CLASSPATH變量是用來 引導java解釋器(java命令)在那些路徑(目錄)下找到要執行的類文件(javac編譯生成后的class文件(字節碼文件))。
CLASSPATH變量的配置的是用來指定java加載類的路徑,只有類在CLASSPATH路徑中時,java命令才能執行它。
CLASSPATH變量的配置:(jdk5之后版本不需要配置)
系統變量→新建 CLASSPATH 變量
變量值為 .;%JAVA_HOME%/lib;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar(注意最前面有一點,代表當前目錄,tools.jar是工具類庫,dt.jar是關于java運行環境的類庫;
在java5中,為了簡化開發,JRE會自動搜索當前路徑下的jar包,并自動加載dt.jar和tools.jar)?
2,在長期版本支持中,在jdk11 之前安裝jdk都會出現選擇安裝jdk和單獨的jre,在jdk11之后(發行版本在jdk9之后)不在出現單獨的jre,在安裝好的jdk中也沒有jre目錄。
在jdk11之前,以jdk8為例,我們在安裝好jdk和jre后,你會發現不用配置任何環境變量也能直接執行java這個命令,而java命令執行的java.exe要依賴于jre執行,這是為什么呢,不是說要配置環境變量才能在任意盤符下執行程序嗎,
這是因為在安裝單獨的jre時,單獨的jre會自動在系統變量path變量中自動配置一個名為 ....\javapath的環境變量(我的是C:\Program Files (x86)\Common Files\Oracle\Java\javapath)在這個目錄下有三個應用程序,其中就有java.exe這個文件,所以不配置也能執行java命令
?3 當我們配置好%JAVA_HOME%/lib(配置的是jdk下的bin文件)和%JAVA_HOME%\jre\bin(配置的是jdk下的jer下的bin文件)時
備注 這是本人獨立的jer和jdk位置和版本,為了區分版本名字不一樣
在com輸入以下 命令可以得出一個結論,我們在執行java -version命令時優先使用的是獨立的jer版本,這說明,我們在執行命令時也是優先使用獨立的jer中的應用程序,環境變量的配置系統默認配置的優先級高于人工的優先級,(可以人為修改,感興趣的伙伴可以嘗試,不建議修改長期使用)。
?4當我們在系統變量中 刪除單獨的jer的環境變量時,(我這里是對單獨的jer中的javapath文件進行路徑修改,如圖,這個時候Javapath環境變量將不起作用)
?
當輸入java - version這時使用的是jdk自帶的jer。
5 jdk11(發行版本9)之后? 隨著虛擬化、容器化、微服務化的普及和流行,以前龐大的JRE已經跟不上時代的發展:作為一個運行時,里面經常包含了太多不需要的東西。比如,如果一臺主機上的某個JRE僅僅是用來運行Apache Tomcat,那么JRE中用來支持SWT的部分就是浪費資源的,浪費空間又降低效率。jdk作為一個開發人員來說只需要輕量級的能夠滿足自己代碼測試就行,越多越不利于測試和維護,不利于編程人員的開發,所以在jdk9之后舍棄了部分jer運行的組件,單獨的jdk不在出現單獨的jer文件目錄,直接把必須要用到的jer中的內容封裝到了一個模塊組件中,供編程人員使用,模塊技術的核心就是為了減少Java應用和Java核心運行時環境的大小與復雜性。為此,JDK本身進行了模塊化,Oracle希望通過這種方式提升性能、安全性和可維護性。
在安裝jdk中 jdk會自動配置以下四個應用程序的快捷鍵模式的JavaPath環境變量,在我們自己配置環境變量時直接可以刪了這個環境變量配置,然后只需要配置jdk/bin目錄的環境變量即可。
當我們同時安裝了jdk和獨立的jre時,系統會優先選擇獨立的jer下的java.exe,在上訴可是知道,然后當我們刪除獨立的jre環境變量,刪除我們配置好的%JAVA_HOME%\jer\bin, 在cmd中輸入java,得到的就是? jdk/bin目錄下的java.exe執行的結果,可以輸入javac進行驗證,如果運行成功,再查看java -version運行版本,這時你會發現版本是自帶的jre運行版本,當把自帶的jer刪除(或者更換目錄)后執行java命令,jdk\bin 下的java.exe會自動根據公用的jre的注冊表信息找到公用jre下執行的環境jvm,并執行。
可以得出在獨立的jre沒有配置環境變量下,會先使用自帶的jre,如果沒有自帶的jre就會查找獨立(公有)的jre運行,在尋找的時候還會進行對版本進行校驗,版本不同不能運行
在獨立jre配置了環境變量并且優先順序大于自帶的jre時,則jdk\bin 下的java.exe失效,優先使用公共jre 下的java.exe命令。
當我們刪除獨立的jre環境變量,同時配置好%JAVA_HOME%\jer\bin和%JAVA_HOME%\bin,這時就會按照配置的環境變量先后順序進行執行,看系統先找到誰就使用誰,在沒有公有jre下,兩者并沒有什么區別
當我們刪除獨立的jre和%JAVA_HOME%\bin的環境變量時,jre就相當于一個公有的jre,jre\bin\java.exe運行的也是自己本身。
上述中我們可以得出
在公有jre默認的環境變量沒有被修改的情況下,使用的java命令都是執行公有jre的java.exe程序
在刪除公有jre配置的情況下,%JAVA_HOME%\jer\bin和%JAVA_HOME%\bin 配置誰使用誰的java.exe命令,兩者同時配置時,誰優先就用誰 當刪除 專用jre時,使用的也是公有jre,當公有和專有都刪除時,jdk不能正常運行
公有和專有jer的java.exe程序都只能運行本身,%JAVA_HOME%\bin下的java.exe 可以運行專有和公有的jre。
總結
以上是生活随笔為你收集整理的什么是环境变量?环境变量配置,jdk8的path环境变量配置,各个版本下jdk结构的变化以及环境变量配置的阐述,java命令执行三个不同目录下的java.exe说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 密码插件 validate_
- 下一篇: ZIP压缩的原理