標籤:root 會同 ref 系統內容 手動 客戶 虛擬 system 參考
1,安裝版的jre或jdk。安裝後如果不做開發用,則只是做Java運行時環境,則不需要手動設定任何Java環境變數。
2,綠色解壓版(拷貝版)jdk或jre。運行和開發都需要配置環境變數。
運行Java先行編譯好的class程式需要找到java.exe,開發Java程式編譯Java檔案需要javac.exe ,因此配置path指向%JAVA_HOME%/jdk/bin目錄。
JAVA_HOME是因為啟動運行時,Tomcat會使用該環境變數。
3,環境變數設定,JAVA_HOME,path 追加%JAVA_HOME%/jdk/bin即可。無需配置classpath,無需追加%JAVA_HOME%/jdk/jre/bin。因為很少有情況使用手動編寫Java檔案、再命令列編譯Java源檔案,成熟的IDE等有classpath的預設配置。
4,參考。
本文來自:http://blog.csdn.NET/han_dongwei/article/details/7782771
大家肯定在安裝JDK的時候會有選擇是否安裝單獨的jre,一般都會一起安裝,我也建議大家這樣做。
因為這樣更能協助大家弄清楚它們的區別:
Jre 是java runtime environment, 是java程式的運行環境。既然是運行,當然要包含jvm,也就是大家熟悉的虛擬機器啦, 還有所有java類庫的class檔案,都在lib目錄下打包成了jar。大家可以自己驗證。至於在windows上的虛擬機器是哪個檔案呢? 學過MFC的都知道什麼是dll檔案吧,那麼大家看看jre/bin/client裡面是不是有一個jvm.dll呢?那就是虛擬機器。
Jdk 是java development kit,是java的開發套件,裡麵包含了各種類庫和工具。當然也包括了另外一個Jre. 那麼為什麼要包括另外一個Jre呢?而且jdk/jre/bin同時有client和server兩個檔案夾下都包含一個jvm.dll。 說明是有兩個虛擬機器的。這一點不知道大家是否注意到了呢?
相信大家都知道jdk的bin下有各種java程式需要用到的命令,與jre的bin目錄最明顯的區別就是jdk下才有javac,這一點很好理解,因為 jre只是一個運行環境而已。與開發無關,正因為如此,具備開發功能的jdk自己的jre下才會同時有client性質的jvm和server性質的 jvm, 而僅僅作為運行環境的jre下只需要client性質的jvm.dll就夠了。
記得在環境變數path中設定jdk/bin路徑麽?這應該是大家學習Java的第一步吧, 老師會告訴大家不設定的話javac和java是用不了的。確實jdk/bin目錄下包含了所有的命令。可是有沒有人想過我們用的java命令並不是 jdk/bin目錄下的而是jre/bin目錄下的呢?不信可以做一個實驗,大家可以把jdk/bin目錄下的java.exe剪下到別的地方再運行 java程式,發現了什嗎?一切OK!
那麼有人會問了?我明明沒有設定jre/bin目錄到環境變數中啊?
試想一下如果java為了提供給大多數人使用,他們是不需要jdk做開發的,只需要jre能讓java程式跑起來就可以了,那麼每個客戶還需要手動去設定環境變數多麻煩啊?所以安裝jre的時候安裝程式自動幫你把jre的java.exe添加到了系統變數中,驗證的方法很簡單,大家看到了系統內容變數的 path最前面有“%SystemRoot%\system32;%SystemRoot%;”這樣的配置,那麼再去Windows/system32下面去看看吧,發現了什嗎?有一個java.exe。
如果強行能夠把jdk/bin挪到system32變數前面,當然也可以迫使使用jdk/jre裡面的java,不過除非有必要,我不建議大家這麼做。使用單獨的jre跑java程式也算是客戶環境下的一種測試。
這下大家應該更清楚jdk和jre內部的一些聯絡和區別了吧?
Java環境變數的簡記