java jdk的目录结构
以下的内容为本人参考网上一些类似的博客之后在结合自己的认识来写的,如有不足,欢迎大家指正
当你打开安装的jdk目录之后会看到如下的目录结构
关于一下各个文件夹的内容和作用我来给大家介绍一下,请注意,此时默认的目录是没有上图中的src文件夹的,该文件夹是我把src.zip解压生成的,这个压缩包比较特殊,其实里面的内容就是java基本类库的源代码,全部都是.java文件,大家没事可以看看其中的源代码,了解下java类的设计
然后总体的结构我就在网上找了大牛已经分析好的结构,给大家做个参考
如下文
-bin目录: JDK开发工具的可执行文件
-lib目录: 开发工具使用的归档包文件
-jre: Java 运行时环境的根目录,包含Java虚拟机,运行时的类包和Java应用启动器,
但不包含开发环境中的开发工具
-demo: 含有源代码的程序示例
-include: 包含C语言头文件,支持Java本地接口与Java虚拟机调试程序接口的本地编程技术
开发文件和目录
本节对开发 Java 平台应用程序所要求的文件和目录进行说明。(不要求的目录有:演示程序、Java 源代码和 C 头文件。下一节附加文件和目录将对它们进行论述。) 下图列出的是最重要的目录:
jdk1.2
___________|____________________
| | |
bin lib jre
| | __________|___________
java.exe tools.jar | |
javac.exe dt.jar bin lib
javap.exe _____|____ ________|________
javah.exe | | | | |
javadoc.exe java.exe classic rt.jar ext
security
java.dll | i18n.jar |
awt.dll jvm.dll iiimp.jar
假定 JDK 软件安装在
c:\jdk1.2
目录中,下面列出的是那些关键目录及它们之所以重要的原因:
- src.jar -- 构成 Java 平台核心 API 的所有类的源文件的归档。
c:\jdk1.2\bin
- Java 开发工具包 (JDK) 中所包含的开发工具的可执行文件。PATH 环境变量应该包含一个指示此目录的项。有关工具的详细信息,参见 JDK 工具。
c:\jdk1.2\lib
- 开发工具使用的文件。这些文件包括
tools.jar
,它包含支持 JDK 的工具和实用程序的非核心类。还包括dt.jar
,它是 BeanInfo 文件的 DesignTime 归档,BeanInfo 文件用来告诉交互开发环境 (IDE) 如何显示 Java 组件以及如何让开发人员根据应用程序自定义它们。c:\jdk1.2\jre
- JDK 开发工具所使用的 Java 运行时环境的根目录。运行时环境是 Java 1.2 平台的实现。除了文档外,它与可部署的 JRE 完全相同。
c:\jdk1.2\jre\bin
- Java 平台使用的工具和库的可执行文件及 DLL。可执行文件与
/jdk1.2/bin
中的文件相同。java 启动器工具担当应用程序启动器的角色,它替代了与 1.1 版的 JDK 软件一同发行的旧 jre 工具。不必将该目录放在 PATH 环境变量中。c:\jdk1.2\jre\bin\classic
- 包含虚拟机使用的 Windows DLL 文件。经典虚拟机是 Java 虚拟机的语言解释器版本。当新的虚拟机可用时,它们的 DLL 将被安装在 jre/bin 的某个新子目录中。
c:\jdk1.2\jre\lib
- Java 运行时环境使用的代码库、属性设置和资源文件。包括:
rt.jar
-- 类(构成 Java 平台核心 API 的 RunTime 类)。- i18n.jar -- 字符转换类及其它与国际化和本地化有关的类。
- 除(下面将要阐述的)
ext
子目录以外,还有几个资源子目录不在此处说明。c:\jdk1.2\jre\lib\ext
- Java 平台扩展的缺省安装目录。例如,这是安装时 JavaHelp jar 文件的安装目录。包括:
- iiimp.jar -- 实现 Internet-Intranet 输入方法协议的类,供从使用国际字符集的设备上接收输入的应用程序来使用。
附加文件和目录
本节说明演示程序、Java 源代码和 C 头文件的目录结构。下面是目录结构:
jdk1.2
__________ _____|_____ _____________
| | | |
src.jar demo include include-old
___|___
| |
applets jfc
|
Java2D
以上所显示的附加目录为:
c:\jdk1.2\demo
- 含有源代码的程序示例,用于显示如何为 Java 平台编程。
c:\jdk1.2\demo\applets
- 可用在网页上的 applet。
c:\jdk1.2\demo\jfc
- 使用新 JFC\Swing 组件的示例。
c:\jdk1.2\demo\jfc\Java2D
- 使用新 Java 2D 图形的示例。
c:\jdk1.2\include
- C 语言头文件,它支持使用 Java 本地接口 [ web]和 Java 虚拟机调试程序接口 [ web] 的本地代码编程技术。
c:\jdk1.2\include-old
- 头文件,支持使用旧接口的本地代码编程技术。提供这些头文件只是为了向后兼容。所有 Java 虚拟机都不推荐、不支持也不提供这些接口。
其中我要强调的是,jre\lib和jdk\lib的区别
jre\lib 下面的是执行java程序所需的类库(包括java核心类,swing,rmi)
jdk\lib 下面的是用来支持jdk\bin下面的开发工具的非核心类库tool.jar,还有dt.jar包含了BianInfo文件用来与IDE交互,显示定制javabean组件外观的。
简单的说,如果只是运行java程序,就不需要jdk\lib下的jar文件
如果要用jdk等开发,特别是用到javabean,和某些jdk工具就要用到jdk\lib下的类库文件
java的API文档是对jre\lib\rt.jar的说明。也就是说与前文java类库的源码也就是src.zip文件里面的.java文件形成一一对应关系的就是jre\lib目录下rt.jar里面的.class文件。
还有一点需要说明就是我们平时写java程序,import的java的自带的类,其实最后都是相当于引用的.class文件,与.java文件并没有什么关系,所以src文件夹默认是没有的。
以上就是本人对java jdk的一点简单认识,如果有不足的地方欢迎大家前来指正
参考资料来源:http://blog.csdn.net/littleyearyear/article/details/41477807