小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

JRE

 ShangShujie 2007-08-28

中科永聯(lián)高級技術(shù)培訓(xùn)中心(www.

      JREJava Runtime Environment,Java運(yùn)行環(huán)境),運(yùn)行JAVA程序所必須的環(huán)境的集合,包含JVM標(biāo)準(zhǔn)實(shí)現(xiàn)及Java核心庫。

      jre為JavaRunTimeEnvirment的簡稱,JavaRuntimeEnvironment(包括JavaPlug-in)是Sun的產(chǎn) 品,包括兩部分:JavaRuntimeEnvironment和JavaPlug-inJavaRuntimeEnvironment(JRE)是可以 在其上運(yùn)行、測試和傳輸應(yīng)用程序的Java平臺。它包括Java虛擬機(jī)、Java平臺核心類和支持文件。它不包含開發(fā)工具--編譯器、調(diào)試器和其它工具。JRE需要輔助軟件--JavaPlug-in--以便在瀏覽器中運(yùn)行applet。

      JavaPlug-in軟件允許Javaapplet和JavaBeans組件在使用Sun的JavaRuntimeEnvironment(JRE)的瀏覽器中運(yùn)行,而不是在使用缺省的Java運(yùn)行環(huán)境的瀏覽器中運(yùn)行。JavaPlug-in可用于NetscapeNavigator和MicrosoftInternetExplorer。

      J2RE是Java2 Runtime Environment,即Java運(yùn)行環(huán)境,有時簡稱JRE。如果你只需要運(yùn)行Java程序或Applet,下載并安裝它即可。如果你要自行開發(fā) Java軟件,請下載JDK。在JDK中附帶有JRE。注意由于Microsoft對Java的支持不完全,請不要使用IE自帶的虛擬機(jī)來運(yùn)行 Applet,務(wù)必安裝一個JRE或JDK。

一、JRE的版本管理

      Java的解決辦法是每個程序自己攜帶一套JRE。

      我的機(jī)器上已經(jīng)被安裝了好多套JRE和JDK了(JDK包括了同版本的JRE,此外還包括有編譯器和其它工具),它們分別是:
 
BEA Weblogic Server 7.0 自帶一套 JDK1.3.1_02
我下載了一套最新的JDK1.4.1_02
JBuilder9自帶一套JKD1.4.1_02
Oracle8.1.7自帶一套JRE1.1.7
Ration Rose自帶一套JDK1.3
DreamWeaver自帶一套JDK1.3

      6套JRE,每套JRE都被各自安裝到不同的目錄,不會互相影響。當(dāng)在控制臺執(zhí)行java.exe,操作系統(tǒng)尋找JRE的方式如下:

先找當(dāng)前目錄下有沒有JRE
再找父目錄下有沒有JRE
接著在PATH路徑中找JRE
注冊表HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\ 查看CurrentVersion的鍵值指向哪個JRE

      最常用的是在PATH路徑中找JRE,一般情況下,自己的程序運(yùn)行之前都會先在批處理文件里面臨時設(shè)置PATH,把自己用的JRE放到PATH路徑最前面,所以肯定會運(yùn)行自己帶的JRE,不會造成版本混亂。

      .Net Framework的版本管理

      .Net Framework被固定安裝在C:\Winnt\Microsoft.NET\Framework\v版本號\目錄下,并且在同一臺機(jī)器只能安裝一套, 要安裝1.1版本的.Net Framework,就必須先刪除1.0的。聽說剛發(fā)行的.Net Framework1.1已經(jīng)對1.0做了很多改進(jìn),甚至基礎(chǔ)類庫的層次也有所變動??磥碓谂f版本的.Net Framework開發(fā)的程序?qū)硗掳姹旧厦孢w移的時候少不了修改程序代碼。

二、JRE的基礎(chǔ)類庫

      JRE自帶的基礎(chǔ)類庫主要是JRE\lib\rt.jar這個文件,包括了Java2平臺標(biāo)準(zhǔn)版的所有類庫。和JRE的版本一致。

      .Net Framekwork的核心類庫

      .Net Framekwork的核心類庫被放置在C:\Winnt\assembly\gac\目錄下,按照不同的名稱空間放在不同目錄中,不像JRE打成了一個包。并且可以同時存在不同的版本,例如:
某類庫1.0版本 C:\Winnt\assembly\gac\名稱\1.0\名稱.dll
某類庫1.1版本 C:\Winnt\assembly\gac\名稱\1.1\名稱.dll

      這樣做,雖然很靈活,可以隨時把類庫更新到最新的狀態(tài),但是很容易帶來版本管理的復(fù)雜度,造成版本不一致。

三、JRE類庫的查找方法和版本管理

      JRE中由ClassLoader負(fù)責(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的類庫管理機(jī)制,他還居然批評Java的接口,令人懷疑他對Java的了解程度)

      .Net Framework的類庫管理機(jī)制

      .Net Framework的類庫管理機(jī)制相當(dāng)強(qiáng)大和復(fù)雜,分為私有類庫和共享類庫。
      私有類庫就放在exe程序當(dāng)前路徑下,或其相對路徑中,只有當(dāng)前程序可見。
      共享類庫需要在GAC(Global Assembly Cache)中注冊,注冊過程比較復(fù)雜,首先要用工具生成公開/私有密鑰對,然后結(jié)合密鑰和類庫版本號連編,最后使用工具注冊到GAC中好以后,會被放在 "C:\Winnt\assembly\gac\類庫的名稱空間\版本號\"目錄下,不同的類庫版本在注冊的時候會按照版本號分開放置:
      ·某類庫1.0版本 C:\Winnt\assembly\gac\名稱\1.0\名稱.dll
      ·某類庫1.1版本 C:\Winnt\assembly\gac\名稱\1.1\名稱.dll

      也就是可以同時存在一個類庫的n個版本,至于在程序中用哪個版本,在程序的配置文件中聲明,CLR會根據(jù)聲明來調(diào)用相應(yīng)的版本的類庫。我覺得.Net實(shí)現(xiàn) 方法未免太復(fù)雜了一些,將所有共享類庫都塞到一個系統(tǒng)目錄下,并且同一個類庫還有n個版本,將來.Net第三方開發(fā)的類庫逐漸豐富起來以后,.Net類庫 的GAC也會越來越龐大,會不會也搞得和Windows注冊表一樣難以維護(hù)?軟件發(fā)布到服務(wù)器上的時候,類庫要再注冊一次,服務(wù)器會逐漸形成一個龐大的樹 狀的GAC,GAC里面存放著組件的n個版本。試想經(jīng)過一段時間之后,C:\Winnt\assembly\gac\目錄會越來越龐大,有的組件甚至有n 個版本都放在那里,你又不敢隨便刪除,不知道是不是有程序需要使用,我不明白MS為什么要把這么簡單的事情搞到這么復(fù)雜?

 

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多