jre如何管理好
JRE是運行JAVA程序所必須的環(huán)境的集合,包含JVM標準實現(xiàn)及Java核心類庫,以下是由學(xué)習(xí)啦小編整理關(guān)于什么是jre的內(nèi)容,希望大家喜歡!
jre的簡介
JRE為Java Runtime Environment的簡稱,Java Runtime Environment(包括Java Plug-in)是Sun的產(chǎn)品,包括兩部分:Java Runtime Environment和Java Plug-in。JavaRuntimeEnvironment(JRE)是可以在其上運行、測試和傳輸應(yīng)用程序的Java平臺。它包括Java虛擬機(jvm)、Java核心類庫和支持文件。它不包含開發(fā)工具(JDK)--編譯器、調(diào)試器和其它工具。JRE需要輔助軟件--Java Plug-in--以便在瀏覽器中運行applet。
Java Plug-in軟件允許Java Applet和JavaBean組件在使用Sun的Java Runtime Environment(JRE)的瀏覽器中運行,而不是在使用缺省的Java運行環(huán)境的瀏覽器中運行。Java Plug-in可用于Netscape Navigator和Microsoft Internet Explorer。
J2RE是Java2 Runtime Environment,即Java運行環(huán)境,只是強調(diào)其匹配Java2平臺,有時簡稱JRE。如果你只需要運行Java程序或Applet,下載并安裝它即可。如果你要自行開發(fā) Java軟件,請下載JDK(JRE和JDK的區(qū)別)。在JDK中附帶有JRE。注意由于Microsoft對Java的支持不完全,請不要使用IE自帶的虛擬機來運行 Applet,務(wù)必安裝一個JRE或JDK。
jre的基礎(chǔ)類庫
JRE自帶的基礎(chǔ)類庫主要是JRE\lib\rt.jar這個文件,包括了Java2平臺標準版的所有類庫。和JRE的版本一致。
Net Framekwork的核心類庫
Net Framekwork的核心類庫被放置在C:\Winnt\assembly\gac\目錄下,按照不同的名稱空間放在不同目錄中,不像JRE打成了一個包。并且可以同時存在不同的版本,例如:
某類庫1.0版本 C:\Winnt\assembly\gac\名稱 class="main">
jre如何管理好
jre如何管理好
這樣做,雖然很靈活,可以隨時把類庫更新到最新的狀態(tài),但是很容易帶來版本管理的復(fù)雜度,造成版本不一致。
jre的查找方法
JRE中由ClassLoader負責(zé)查找和加載程序引用到的類庫,基礎(chǔ)類庫ClassLoader會到rt.jar中自動加載,其它的類庫,ClassLoader在環(huán)境變量CLASSPATH指定的路徑中搜索,按照先來先到的原則,放在CLASSPATH前面的類庫先被搜到,Java程序啟動之前建議先把PATH和CLASSPATH環(huán)境變量設(shè)好,OS通過PATH來找JRE,確定基礎(chǔ)類庫rt.jar的位置,JRE的ClassLoader通過CLASSPATH找其它類庫。但有時候會出現(xiàn)這樣的情況,希望替換基礎(chǔ)類庫中的類庫,那么也可以簡單的通過-Djava.endrosed.path=...參數(shù)傳遞給java.exe,于是ClassLoader會先于基礎(chǔ)類庫使用java.endrosed.path參數(shù)指定路徑的類庫。因此Java的版本管理是非常簡單有效的,也許很原始,不過很好用,簡單就不容易出錯。(所以我很奇怪Eric Ramond為什么批評Java的類庫管理機制,他還居然批評Java的接口,令人懷疑他對Java的了解程度)
jre的管理機制
分類
Net Framework的類庫管理機制 .Net Framework的類庫管理機制相當(dāng)強大和復(fù)雜,分為私有類庫和共享類庫。
私有類庫就放在exe程序當(dāng)前路徑下,或其相對路徑中,只有當(dāng)前程序可見。
注意事項
1、共享類庫需要在GAC(Global Assembly Cache)中注冊,注冊過程比較復(fù)雜,首先要用工具生成公開/私有密鑰對,然后結(jié)合密鑰和類庫版本號連編,最后使用工具注冊到GAC中好以后,會被放在"C:\Winnt\assembly\gac\類庫的名稱空間\版本號\"目錄下,不同的類庫版本在注冊的時候會按照版本號分開放置:
2、可以同時存在一個類庫的n個版本,至于在程序中用哪個版本,在程序的配置文件中聲明,CLR會根據(jù)聲明來調(diào)用相應(yīng)的版本的類庫。我覺得.Net實現(xiàn)方法未免太復(fù)雜了一些,將所有共享類庫都塞到一個系統(tǒng)目錄下,并且同一個類庫還有n個版本,將來.Net第三方開發(fā)的類庫逐漸豐富起來以后,.Net類庫的GAC也會越來越龐大,會不會也搞得和Windows注冊表一樣難以維護?軟件發(fā)布到服務(wù)器上的時候,類庫要再注冊一次,服務(wù)器會逐漸形成一個龐大的樹狀的GAC,GAC里面存放著組件的n個版本。試想經(jīng)過一段時間之后,C:\Winnt\assembly\gac\目錄會越來越龐大,有的組件甚至有n個版本都放在那里,你又不敢隨便刪除,不知道是不是有程序需要使用,我不明白MS為什么要把這么簡單的事情搞到這么復(fù)雜?
討論:全局程序集緩存不會是無限大的,所以“將來.Net第三方開發(fā)的類庫逐漸豐富起來以后,.Net類庫的GAC也會越來越龐大,會不會也搞得和Windows注冊表一樣難以維護?”這是杞人憂天。原因如下:第一是操作系統(tǒng)的生命周期一般不會是無限長的,而且越來越短,Windows為證,同時.Net Framework也在不斷更迭,在十年左右的時間里,全球的程序產(chǎn)量是有限的,高質(zhì)量的第三方開發(fā)的類庫更是有限,需要注冊到GAC的就更少了。
看過“jre如何管理”的人還看了: