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