官方介紹
JRE為Java Runtime Environment的簡稱,Java SE Runtime Environment安裝版(包括Java Plug-in)是Sun的產品,包括兩部分:Java Runtime Environment和Java Plug-in。JavaRuntimeEnvironment(JRE)是可以在其上運行、測試和傳輸應用程序的Java平臺。它包括Java虛擬機(jvm)、Java核心類庫和支持文件。它不包含開發工具(JDK)--編譯器、調試器和其它工具。JRE需要輔助軟件--Java Plug-in--以便在瀏覽器中運行applet。
Java Plug-in軟件允許Java Applet和JavaBean組件在使用Sun的Java Runtime Environment(JRE)的瀏覽器中運行,而不是在使用缺省的Java運行環境的瀏覽器中運行。Java Plug-in可用于Netscape Navigator和Microsoft Internet Explorer。
J2RE是Java2 Runtime Environment,即Java運行環境,只是強調其匹配Java2平臺,有時簡稱JRE。如果你只需要運行Java程序或Applet,下載并安裝它即可。如果你要自行開發 Java軟件,請下載JDK(JRE和JDK的區別)。在JDK中附帶有JRE。注意由于Microsoft對Java的支持不完全,請不要使用IE自帶的虛擬機來運行 Applet,務必安裝一個JRE或JDK。
查找方法
JRE中由ClassLoader負責查找和加載程序引用到的類庫,基礎類庫ClassLoader會到rt.jar中自動加載,其它的類庫,ClassLoader在環境變量CLASSPATH指定的路徑中搜索,按照先來先到的原則,放在CLASSPATH前面的類庫先被搜到,Java程序啟動之前建議先把PATH和CLASSPATH環境變量設好,OS通過PATH來找JRE,確定基礎類庫rt.jar的位置,JRE的ClassLoader通過CLASSPATH找其它類庫。但有時候會出現這樣的情況,希望替換基礎類庫中的類庫,那么也可以簡單的通過-Djava.endrosed.path=...參數傳遞給java.exe,于是ClassLoader會先于基礎類庫使用java.endrosed.path參數指定路徑的類庫。因此Java的版本管理是非常簡單有效的,也許很原始,不過很好用,簡單就不容易出錯。(所以我很奇怪Eric Ramond為什么批評Java的類庫管理機制,他還居然批評Java的接口,令人懷疑他對Java的了解程度)
注意事項
1、共享類庫需要在GAC(Global Assembly Cache)中注冊,注冊過程比較復雜,首先要用工具生成公開/私有密鑰對,然后結合密鑰和類庫版本號連編,最后使用工具注冊到GAC中好以后,會被放在"C:Winntassemblygac類庫的名稱空間版本號"目錄下,不同的類庫版本在注冊的時候會按照版本號分開放置:
·某類庫1.0版本 C:Winntassemblygac名稱1.0名稱.dll
·某類庫1.1版本 C:Winntassemblygac名稱1.1名稱.dll
2、可以同時存在一個類庫的n個版本,至于在程序中用哪個版本,在程序的配置文件中聲明,CLR會根據聲明來調用相應的版本的類庫。我覺得.Net實現方法未免太復雜了一些,將所有共享類庫都塞到一個系統目錄下,并且同一個類庫還有n個版本,將來.Net第三方開發的類庫逐漸豐富起來以后,.Net類庫的GAC也會越來越龐大,會不會也搞得和Windows注冊表一樣難以維護?軟件發布到服務器上的時候,類庫要再注冊一次,服務器會逐漸形成一個龐大的樹狀的GAC,GAC里面存放著組件的n個版本。試想經過一段時間之后,C:Winntassemblygac目錄會越來越龐大,有的組件甚至有n個版本都放在那里,你又不敢隨便刪除,不知道是不是有程序需要使用,我不明白MS為什么要把這么簡單的事情搞到這么復雜?
討論:全局程序集緩存不會是無限大的,所以“將來.Net第三方開發的類庫逐漸豐富起來以后,.Net類庫的GAC也會越來越龐大,會不會也搞得和Windows注冊表一樣難以維護?”這是杞人憂天。原因如下:第一是操作系統的生命周期一般不會是無限長的,而且越來越短,Windows為證,同時.Net Framework也在不斷更迭,在十年左右的時間里,全球的程序產量是有限的,高質量的第三方開發的類庫更是有限,需要注冊到GAC的就更少了。
主要特性
Lambda表達式,一種新的語言特性,能夠使功能作為方法參數或將代碼作為數據;
顯著增加和完善Java語言特性,增添標準庫,包括默認方法,新的java.util.stream包及 Date-Time API;
Compact Profiles包含 Java SE平臺預定義子集,使程序員無需部署在整個平臺,可運行在小型設備上;
安全性包括更新可Java加密體系架構;限制doPrivileged;SSL/TLS Server Name Indication (SNI) Extension以及增強密鑰庫;
JavaFX更新文檔
新的JavaScript引擎Nashorn
您的評論需要經過審核才能顯示
有用
有用
有用