Java語(yǔ)言是穩(wěn)居網(wǎng)絡(luò)應(yīng)用程序語(yǔ)言的首選之一。如今的Java不僅在執(zhí)行速度上有大幅度的改革,而且在內(nèi)容上也有做了不少些修改以及增強(qiáng)。
Java SE Runtime Environment 基礎(chǔ)類庫(kù)
RE自帶的基礎(chǔ)類庫(kù)主要是JRElibrt.jar這個(gè)文件,包括了Java2平臺(tái)標(biāo)準(zhǔn)版的所有類庫(kù)。和JRE的版本一致。
Net Framekwork的核心類庫(kù)
Net Framekwork的核心類庫(kù)被放置在C:Winntassemblygac目錄下,按照不同的名稱空間放在不同目錄中,不像JRE打成了一個(gè)包。并且可以同時(shí)存在不同的版本,例如:
某類庫(kù)1.0版本 C:Winntassemblygac名稱1.0名稱.dll
某類庫(kù)1.1版本 C:Winntassemblygac名稱1.1名稱.dll
這樣做,雖然很靈活,可以隨時(shí)把類庫(kù)更新到最新的狀態(tài),但是很容易帶來(lái)版本管理的復(fù)雜度,造成版本不一致。
JRE查找方法
JRE中由ClassLoader負(fù)責(zé)查找和加載程序引用到的類庫(kù),基礎(chǔ)類庫(kù)ClassLoader會(huì)到rt.jar中自動(dòng)加載,其它的類庫(kù),ClassLoader在環(huán)境變量CLASSPATH指定的路徑中搜索,按照先來(lái)先到的原則,放在CLASSPATH前面的類庫(kù)先被搜到,Java程序啟動(dòng)之前建議先把PATH和CLASSPATH環(huán)境變量設(shè)好,OS通過(guò)PATH來(lái)找JRE,確定基礎(chǔ)類庫(kù)rt.jar的位置,JRE的ClassLoader通過(guò)CLASSPATH找其它類庫(kù)。但有時(shí)候會(huì)出現(xiàn)這樣的情況,希望替換基礎(chǔ)類庫(kù)中的類庫(kù),那么也可以簡(jiǎn)單的通過(guò)-Djava.endrosed.path=...參數(shù)傳遞給java.exe,于是ClassLoader會(huì)先于基礎(chǔ)類庫(kù)使用java.endrosed.path參數(shù)指定路徑的類庫(kù)。因此Java的版本管理是非常簡(jiǎn)單有效的,也許很原始,不過(guò)很好用,簡(jiǎn)單就不容易出錯(cuò)。(所以我很奇怪Eric Ramond為什么批評(píng)Java的類庫(kù)管理機(jī)制,他還居然批評(píng)Java的接口,令人懷疑他對(duì)Java的了解程度)
您的評(píng)論需要經(jīng)過(guò)審核才能顯示
有用
有用
有用