JDK与JRE及其在Eclipse中的使用
轉載自:http://blog.csdn.net/gx1058742912/article/details/51033942
?
JDK與jRE的區別
JDK(java development kit):java 開發工具,包括一系列java命令,如javac(java compiler) 等;同時jdk包含jre,因為jdk其實是面向java開發人員的,開 發完之后還要進行調試運行等,這就需要jre了;
JRE(java runtime environment):java 運行時環境,java文件被javac編譯過后形成字節碼文 件,這個文件計算機是不能理解和處理的,需要有jvm(java virtual machine)處理后形成機器語言在傳遞給計算機處理 (這也是為什么說java具有平臺無關性)。Jvm就存在于jre 中。可見,jre其實是面向java程序的使用者;
?
所以,當你需要開發一個java程序時,你需要的是jdk,但如果需要運行一個java程序,就需要jre了。讓人迷惑的是,當你下載并安裝jdk之后,會發現在jdk文件夾內部和外部同時存在jre文件夾(證明了jdk包含jre),下面我們來說說其中的原因:
內部jre:當你開發java程序時,需要用到一些javac之類的命令,就會調用jdk(java開發 ?工具)內部的jre;
外部jre:當你只需要運行一個java程序而不是開發時,就會調用外部的jre;
那么為什么要分兩個呢?公用一個不就行了嗎,還節省了資源。其實分為兩個jre,更多的是為了提高性能和效率,打開兩個jre的文件夾,對比一下會發現:
外部jre中,在其client文件夾里面,有個jvm.dll;內部jre中,多了個server文件夾,其中也有個jvm.dll文件,主要是兩個vm的區別,使得內外部jre有不同的分工,并且能在各自的分工上做到最好(提高各自的效率和性能)。
附上oracle官網的一張截圖:
(http://docs.oracle.com/javase/7/docs/)
從這張圖中可以得到:JVM?JRE?JDK
說到這里,順便提一下windows下環境變量中的path和classpath,畢竟好記性不如爛筆頭!
安裝好jdk之后,下一步就要配置環境變量了,怎么配置就不多說了,網上很多,簡單的說一下為什么要分這兩個來配置:
path變量:與其中的值相對應的路徑下面是一些java命令程序,如javac;
Classpath變量:與其中值相對應的路徑下面是程序需要用到的一些java提供的類(jar包);
有時也用到JAVA_HOME環境變量,它指向jdk的安裝目錄,Eclipse/tomcat等就是通過其找到并使用安裝好的jdk。配置好之后,即可在任何目錄下用java命令執行java程序。那么為什么系統可以在任何目錄下使用JDK提供的命令呢?
其實環境變量就是能夠讓系統更快速方便的找到所需的東西,有興趣的可以看一下windows系統變量中的path變量中已有的值,例如C:\Windows\system32;,按這個路徑打開,會發現里面有很多可執行文件,比如cmd.exe,這就是為什么我們能夠在“運行”窗口輸入cmd之后就出現命令行的原因。說到這里,你也可以試試利用環境變量啟動其他程序!
eclipse中的JDK與JRE:
其實寫這篇文章的出發點就是因為在Eclipse中用maven時,被各種jre、jdk搞得混亂,于是決定弄清楚。先簡單的介紹一下:
Eclipse:是一款集成開發的IDE,可以開發,編譯,調試,運行代碼等;
JDK:java開發工具,用來將.java文件編譯成字節碼文件;
JRE:java運行時環境,執行編譯后得字節碼文件;
Maven:一款項目管理工具;
Eclipse中其實內嵌了Java編譯器,其編譯器的作用等同于jdk中的javac,所以eclipse其實只需要jre就可以編譯java文件(在eclipse中當你保存一個java類時,它就會自動編譯這個java類,相當于在命令行中用了javac這個命令)。但如果你在eclipse中用了maven這樣的工具,可能就無法編譯了。因為maven默認使用javac來編譯項目的,也就是需要jdk,而如果你的eclipse中某maven項目只指定了jre,就會出現無法編譯的情況。就像是啟動Tomcat只需要jre,原因是Tomcat中已經包括了源代碼編譯器,不需要jdk中的javac來編譯。
Eclipse中有幾處會用到jdk和jre的,下面列出幾個,也是我混亂之處所在:
A. Window->preferences->Java->Installed JREs
這里Installed JREs中的可以理解為“全局常量”,這里設置好,之后新建的項目都默認用這里選定的jre或者jdk,但如果項目中用了maven的話,前面說了maven默認的是jdk中的javac來編譯,所以如果這里還是用jre的話就會maven install出錯,需要選擇jdk才行。更改直接Add->Standard VM,點擊directory,選擇相應的jdk或者jre路徑確定即可。
B.給不同的項目選擇不同的jre
右擊項目名稱->build path->configure build path,選擇libraries選項卡,選中jre:
點擊edit:
可根據不同的需求選擇不同的選項卡,并按照提示完成操作即可。注意,當你選擇第二個選項卡“替代JRE”時,eclipse會跳轉至installed jre中讓你選擇,因此,需要你提前在installed jre中配置好。
C. Window ->preferences->java->compiler
這里也會有一個jdk的選擇,就是編譯時jdk的版本,需要注意的一點是:
編譯時的jdk版本不能高于項目build path中的jdk即運行時jdk,因為高版本中的有些功能在低版本中并不提供。例如,項目中用了泛型,編譯時為jdk1.5但運行時為jdk1.4,雖然編譯時不報錯,但運行時就會出錯,因為jdk1.4并不支持泛型;反過來,編譯時為jdk1.4而運行時為jdk1.5,雖然編譯時報錯,但卻可以正確運行。
轉載于:https://www.cnblogs.com/zhile/p/8244516.html
總結
以上是生活随笔為你收集整理的JDK与JRE及其在Eclipse中的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: X509证书认证流程介绍
- 下一篇: study note9