我們下載 Java 的安裝程序往電腦里一裝,把 path 環(huán)境變量設(shè)置一下之后,很少有人會(huì)去看一下安裝目錄下到底有些什么目錄或文件。在 Sun Java 上的一篇技術(shù)文檔就說明了 Java 安裝目錄下到底有些什么東西,并且大致地介紹了一下這些目錄或文件是干什么用的。
轉(zhuǎn)載請保留此原文鏈接:http://www.aygfsteel.com/frankiegao123/archive/2009/07/19/287343.html
譯自:JDK and JRE File Structure (Windows)
本文簡要地介紹一下 JDK 的目錄和這些目錄所包含的文件。需要注意的是,JRE 的文件結(jié)構(gòu)與 JDK 中 jre 目錄的結(jié)構(gòu)是相同的。
用于開發(fā)的文件和目錄
Development Files and Directories
這一節(jié)先來看一下在 Java 開發(fā)中最為重要的文件和必需的目錄。需要注意的,諸如 demos、Java 源代碼和 C 語言頭文件這些目錄并不是必需的。關(guān)于這些目錄結(jié)構(gòu)會(huì)在 其他的文件和目錄 一節(jié)中描述。
jdk1.6.0 _________|___________________________ | | | bin lib jre | | ________________|_________________ java.exe tools.jar | | javac.exe dt.jar bin lib javap.exe ___|___ _______ ________ _____|_______ _____ javah.exe | | | | | | | | javadoc.exe java.exe client server rt.jar ext security applet fonts java.dll | | charsets.jar | awt.dll jvm.dll jvm.dll localedata.jar
假設(shè) JDK 安裝在了 c:\jdk1.6.0 目錄中,下面是一些重要的目錄:
- c:\jdk1.6.0
- JDK 安裝的根目錄。包括 COPYRIGHT、LICENSE 和 README 文件。還包括了 src.zip,這是 Java 平臺源代碼的壓縮包。
- c:\jdk1.6.0\bin
- Java 開發(fā)工具集(Java Development Kit)中用于開發(fā)工具的可執(zhí)行文件。系統(tǒng)的 PATH 環(huán)境變量應(yīng)該包含這個(gè)目錄項(xiàng)。關(guān)于這些工具,在 JDK 工具 (JDK Tools)中可以了解更多的信息。
- c:\jdk1.6.0\lib
- 開發(fā)工具所使用的文件。其中的 tools.jar 包含了在 JDK 中工具和實(shí)用工具支持的非核心類庫。還有 dt.jar,這是 BeanInfo 文件設(shè)計(jì)時(shí)(DesignTime)的壓縮包,用于告知交互式開發(fā)環(huán)境(interactive development environemts, IDE's)如何展示 Java 組件,并且如何讓開發(fā)者自定義這些用于應(yīng)用程序中。
- c:\jdk1.6.0\jre
- JDK 開發(fā)工具所使用的 Java 運(yùn)行環(huán)境的根目錄。這個(gè)運(yùn)行環(huán)境是一個(gè) Java 平臺的實(shí)現(xiàn)。這個(gè)目錄使用 java.home 系統(tǒng)屬性來表示。
- c:\jdk1.6.0\jre\bin
- Java 平臺所使用工具和類庫的可執(zhí)行文件和 DLL 文件。可執(zhí)行文件與 c:\jdk1.6.0\bin 中的文件是相同的。這個(gè) Java 載入工具服務(wù)作為一個(gè)應(yīng)用程序加載器(用于替換在 JDK 1.1 版本發(fā)布舊的 jre 工具)。這個(gè)目錄沒有必要放在系統(tǒng)的 PATH 環(huán)境變量中。
- c:\jdk1.6.0\jre\bin\client
- 包括用于 Java HotSpotTM Client 虛擬機(jī)的 DLL 文件。
- c:\jdk1.6.0\jre\bin\server
- 包括用于 Java HotSpotTM Server 虛擬機(jī)的 DLL 文件。
- c:\jdk1.6.0\jre\lib
- Java 運(yùn)行環(huán)境所使用的核心類庫、屬性設(shè)置和資源文件。例如:
- rt.jar —— 引導(dǎo)類(運(yùn)行時(shí)(RunTime)的類,包含了 Java 平臺的核心 API)。
- charsets.jar —— 字符轉(zhuǎn)換類。
- c:\jdk1.6.0\jre\lib\ext
- 用于 擴(kuò)展 (Extensions)Java 平臺默認(rèn)的安裝目錄。
- localedata.jar —— 用于 java.text 和 java.util 包的區(qū)域(locale)數(shù)據(jù)。
- c:\jdk1.6.0\jre\lib\security
- 包含了用于安全管理的文件。其中包括安全策略(java.policy)和安全屬性(java.security)文件。
- c:\jdk1.6.0\jre\lib\applet
- 用于 Applet 支持類的 jar 文件,可以放在 lib/applet 目錄中。Applet 類通過 Applet 類加載器從本地文件系統(tǒng)中預(yù)加載,這樣為減小大型 Applet 的啟動(dòng)時(shí)間提供了一些方式,好像從網(wǎng)上已經(jīng)下載完成了一樣。
- c:\jdk1.6.0\jre\lib\fonts
- 包括平臺使用的 TrueType 字體文件。
其他的文件和目錄
Additional Files and Directories
這一節(jié)來看一下 demos、Java 源代碼和 C 語言頭文件的目錄結(jié)構(gòu)。
jdk1.6.0 _________|__________ | | | demo include src.zip _____|____ __________ __________ | | | | applets jfc jpda plugin
上面所展示額外的目錄有:
- c:\jdk1.6.0\src.zip
- 包含 Java 平臺源代碼的壓縮包。
- c:\jdk1.6.0\demo
- 附有源代碼的示例程序,用于展示如何在 Java 平臺上編制程序。
- c:\jdk1.6.0\demo\applets
- 能在 Web 頁面上使用的 Applet。
- c:\jdk1.6.0\demo\jfc
- 使用 Java 2DTM 和 JFC/Swing 功能的示例程序。
- c:\jdk1.6.0\demo\jpda
- 使用 Java 平臺調(diào)試架構(gòu) (Java Platform Debugging Architecture)的示例程序。包括用于 javadd 和 jdb 實(shí)用工具的源代碼。
- c:\jdk1.6.0\demo\plugin
- 包含使用 Java 插件產(chǎn)品的演示。
- c:\jdk1.6.0\include
- C 語言的頭文件,用于支持 Java 本地方法接口 (Java Native Interface)和 Java 虛擬機(jī)調(diào)試器接口 (Java Virtual Machine Debugger Interface)的本地代碼程序設(shè)計(jì)
譯后記
Sun Java 上的這篇文章僅僅對 Java 安裝目錄中主要的目錄和文件作了概要性的介紹,并沒有深入也沒有將安裝目錄中所有的都介紹完整。如果想了解其他目錄的結(jié)構(gòu)以及用途,還是需要查閱其他相關(guān)文檔說明。這里補(bǔ)充說明一下其他文件和目錄:
- c:\jdk1.6.0\jre\lib\fontconfig.properties.src
- 這個(gè)文件是用于配置邏輯字體的,在 AWT/Swing 程序中可能會(huì)用到。如果用 NetBeans 會(huì)發(fā)現(xiàn) NetBeans 中編輯器的字體很難看,我們就可以通過這個(gè)文件進(jìn)行修改,然后再將這個(gè)文件改名為 fontconfig.properties。
- c:\jdk1.6.0\jre\lib\logging.properties
- 這個(gè)文件是 JDK 1.4 后增加的,用于配置 Java 提供的日志記錄器的格式,相當(dāng)于 log4j 的 log4j.properties 文件。更多關(guān)于 Java Logging 請點(diǎn)擊這里。
- c:\jdk1.6.0\jre\lib\i386\jvm.cfg
- 64 位平臺是放在 ia64 目錄下的,而非 i386 目錄下。這個(gè)文件是 JVM 的配置文件,指定 JVM 加載哪個(gè)版本的 jvm.dll 文件。我們機(jī)器中默認(rèn)安裝是啟動(dòng) client 的 JVM 的,如果想要啟動(dòng) server 的 JVM,只要把 jvm.cfg 文件中的 -server KNOWN 放到 -client KNOWN 前面去就可以了。
- c:\jdk1.6.0\jre\lib\zi
- 這個(gè)目錄中存放著很重要的時(shí)區(qū)參數(shù),Java 中所有有關(guān)日期、時(shí)間、時(shí)區(qū)的操作都跟這個(gè)目錄下的文件有關(guān)。比如說:時(shí)區(qū)的夏令時(shí)訖止時(shí)間、與標(biāo)準(zhǔn)時(shí)間的時(shí)間差、版本等等信息。比如說,我們電腦中的時(shí)區(qū)名為 Asia/Shanghai 那這個(gè)時(shí)區(qū)名對應(yīng)的文件為 c:\jdk1.6.0\jre\lib\zi\Asia\Shanghai,這是一個(gè)二進(jìn)制文件,是由
sun.util.calendar.ZoneInfoFile
類負(fù)責(zé)解析的(這個(gè)類未被歸檔,所以沒有 API DOC,需要去 OpenJDK下載 JDK 的源代碼才能看到源碼和源碼中的注釋)。 - c:\jdk1.6.0\jre\lib\cmm
- 這個(gè)目錄中存放的是色彩管理配置文件,這些文件是用于 Java 2D API 執(zhí)行色彩對應(yīng)轉(zhuǎn)換的。
更多的說明可以參考 JDK 安裝目錄下的 README.html 文件,或者在線查看README。