1.文章摘要
通过这篇文章来简单、概括性的介绍下openjdk 1.8 的各个目录的作用
2.一级目录介绍
通过idea打开openjdk的项目代码,如下图所示
2.1 common
这个目录包含了一些构建系统和工具的共享代码。
2.1 corba
这个目录包含了CORBA(Common Object Request Broker Architecture)的实现。CORBA是一种用于分布式对象的标准。
2.3 hotspot
这个目录包含了HotSpot虚拟机的实现。HotSpot是JDK的核心虚拟机,负责字节码的解释和编译。
2.4 jaxp
这个目录包含了JAXP(Java API for XML Processing)的实现。JAXP提供了用于处理XML的API。
2.5 jaxws
这个目录包含了JAX-WS(Java API for XML Web Services)的实现。JAX-WS提供了用于开发Web服务的API。
2.6 jdk
这个目录包含了JDK的核心库和工具。这个目录是最重要的部分之一,包含了标准库、工具和其他核心组件。我们java开发常用的类就在这个里面。
2.7 langtools
这个目录包含了语言工具,包括Java编译器(javac)和其他开发工具。
2.8 make
这个目录包含了构建系统的脚本和配置文件。用于控制如何构建整个JDK。
2.9 nashorn
这个目录包含了Nashorn JavaScript引擎的实现。Nashorn是一个基于JVM的JavaScript引擎。
2.10 test
这个目录包含了各种测试代码和测试框架,用于验证JDK的功能和性能。
2.11 LICENSE
这个文件包含了JDK的许可证信息。
2.12 README
这个文件包含了JDK的基本信息和构建指南。
2.13 THIRD_PARTY_README
这个文件包含了JDK中使用的第三方库和工具的信息。
2.14 configure
这个脚本用于配置构建环境,检查系统依赖和配置选项。
2.15 Makefile
这个文件是GNU Make构建系统的入口点,用于启动构建过程。
3.子目录介绍
3.1 jdk
jdk目录的内容如下图所示,可以看到就是我们开发中常用的jdk的源代码,比如并发编程的JUC包
这个包的各个目录的作用如下:
3.1.1 src
这个目录包含了JDK的源代码,按照模块和包的层次结构进行组织。
3.1.1.1 share
这个目录包含了跨平台共享的源代码。具体子目录包括:
- classes: 包含了Java类文件的源代码,按包名组织。
- native: 包含了本地代码(通常是C/C++),用于实现某些底层功能。
- conf: 包含了配置文件,如java.security等。
- legal: 包含了法律文件和许可证信息。
3.1.1.2 macosx, windows, linux, solaris
这些目录包含了特定平台的实现代码。每个目录的结构与share目录类似,但只包含特定平台相关的代码。
3.1.2 make
这个目录包含了构建系统的脚本和配置文件。用于控制如何构建整个JDK。
3.1.3 test
这个目录包含了各种测试代码和测试框架,用于验证JDK的功能和性能。
- jdk: 包含了针对JDK各个模块的测试代码。
- lib: 包含了测试框架和辅助工具。
3.1.4 src/share/classes
这个目录包含了Java类文件的源代码,按包名组织。以下是一些重要的包:
- java.net: 包含了网络相关的类,如java.net。
- java.nio: 包含了NIO(非阻塞I/O)相关的类。
- java.rmi: 包含了远程方法调用(RMI)相关的类。
- javax: 包含了扩展API,如javax.annotation、javax.crypto等。
3.1.5 src/share/native
这个目录包含了本地代码(通常是C/C++),用于实现某些底层功能。
- java.net: 包含了网络相关的本地实现。
- java.nio: 包含了NIO相关的本地实现。
- java.security: 包含了安全相关的本地实现。
3.2 common
在OpenJDK项目中,common目录包含了一些构建系统和工具的共享代码。这个目录通常用于存放在多个子项目中共享使用的脚本、配置文件和工具。以下是对common目录下各个子目录的详细介绍:
3.2.1 autoconf
autoconf目录包含了用于配置构建环境的脚本和宏文件。具体内容包括:
- generated-configure.sh: 这是一个由autoconf生成的配置脚本,用于检查系统环境和依赖。
3.2.2 bin
bin目录包含了一些构建和开发工具的脚本。这些脚本可能用于辅助构建过程、测试和其他开发活动。