您的位置:首页 > 编程语言 > Java开发

java JDK 和 JRE 目录的文件结构

2015-04-02 19:18 363 查看
我们下载 Java 的安装程序往电脑里一装,把 path 环境变量设置一下之后,很少有人会去看一下安装目录下到底有些什么目录或文件。在 Sun Java 上的一篇技术文档就说明了 Java 安装目录下到底有些什么东西,并且大致地介绍了一下这些目录或文件是干什么用的。

译自: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.0JDK 安装的根目录。包括 COPYRIGHT、LICENSE 和 README 文件。还包括了 src.zip,这是 Java 平台源代码的压缩包。c:\jdk1.6.0\binJava 开发工具集(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\jreJDK 开发工具所使用的 Java 运行环境的根目录。这个运行环境是一个 Java 平台的实现。这个目录使用 java.home 系统属性来表示。c:\jdk1.6.0\jre\binJava 平台所使用工具和类库的可执行文件和 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\libJava 运行环境所使用的核心类库、属性设置和资源文件。例如:
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    <a href="http://www.blogjava.net/frankiegao123/archive/2009/07/19/287343.html#src.zip" _xhe_href="http://www.blogjava.net/frankiegao123/archive/2009/07/19/287343.html#src.zip" title="" [此链接已破解]"="" style="color: rgb(0, 102, 204); text-decoration: none;">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\includeC 语言的头文件,用于支持 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.cfg64 位平台是放在 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

转载自:http://www.blogjava.net/frankiegao123/archive/2009/07/19/287343.html#addition

参考:http://www.cnblogs.com/cynthiahuo/archive/2013/06/03/3115921.html

http://www.cnblogs.com/alfredxiao/archive/2010/09/24/jdk_jre.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: