Java語言是穩(wěn)居網(wǎng)絡(luò)應(yīng)用程序語言的首選之一。如今的Java不僅在執(zhí)行速度上有大幅度的改革,而且在內(nèi)容上也有做了不少些修改以及增強(qiáng)。
Java SE Runtime Environment 基礎(chǔ)類庫
RE自帶的基礎(chǔ)類庫主要是JRElibrt.jar這個(gè)文件,包括了Java2平臺標(biāo)準(zhǔn)版的所有類庫。和JRE的版本一致。 Net Framekwork的核心類庫 Net Framekwork的核心類庫被放置在C:Winntassemblygac目錄下,按照不同的名稱空間放在不同目錄中,不像JRE打成了一個(gè)包。并且可以同時(shí)存在不同的版本,例如: 某類庫1.0版本 C:Winntassemblygac名稱1.0名稱.dll 某類庫1.1版本 C:Winntassemblygac名稱1.1名稱.dll 這樣做,雖然很靈活,可以隨時(shí)把類庫更新到最新的狀態(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找其它類庫。但有時(shí)候會出現(xiàn)這樣的情況,希望替換基礎(chǔ)類庫中的類庫,那么也可以簡單的通過-Djava.endrosed.path=...參數(shù)傳遞給java.exe,于是ClassLoader會先于基礎(chǔ)類庫使用java.endrosed.path參數(shù)指定路徑的類庫。因此Java的版本管理是非常簡單有效的,也許很原始,不過很好用,簡單就不容易出錯(cuò)。(所以我很奇怪Eric Ramond為什么批評Java的類庫管理機(jī)制,他還居然批評Java的接口,令人懷疑他對Java的了解程度)