学习Java的小伙伴都应该很熟悉JDK,当然这个熟悉也是有层度的,很多人往往只会用,知道装了JDK后就可以运行Java代码。但对于想深入学习Java的小伙伴来说这是不够的,这篇文章就作为我进阶JDK的一篇学习笔记。
一、基础概念
(1)JDK(Java Development ToolKit)
Java开发工具包,包括JRE,Java工具(javac,javap,javadoc等)和Java基础类库(Java API包括rt.jar)等。
(2)JRE(Java Runtime Environment)
Java运行环境,是运行基于Java语言编写的程序所不可缺少的运行环境。JRE由JVM,Java运行时类库,动态链接库等组成。
(3)JVM(Java Virtual Machine)
Java虚拟机,可以看做是一台抽象化的计算机,它有一套完整的体系架构,包括处理器、堆栈 、寄存器等。
(1)SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。
(2)EE(J2EE),enterprise edition,企业版,使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE。
(3)ME(J2ME),micro edition,主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。
二、JDK1.8目录结构
(1)JDK目录结构
C:\Program Files\Java\jdk1.8.0_152 的目录
2018/07/24 21:00 <DIR> .
2018/07/24 21:00 <DIR> ..
2018/07/24 20:59 <DIR> bin
2017/09/14 03:15 3,244 COPYRIGHT
2018/07/24 20:59 <DIR> db
2018/07/24 20:59 <DIR> include
2018/07/24 20:59 5,202,881 javafx-src.zip
2018/07/24 20:59 <DIR> jre
2018/07/24 20:59 <DIR> lib
2018/07/24 20:59 40 LICENSE
2018/07/24 20:59 159 README.html
2018/07/24 20:59 426 release
2017/09/14 03:15 21,261,295 src.zip
2018/07/24 20:59 63,933 THIRDPARTYLICENSEREADME-JAVAFX.txt
2018/07/24 20:59 145,180 THIRDPARTYLICENSEREADME.txt
8 个文件 26,677,158 字节
7 个目录 16,916,439,040 可用字节
bin目录:Java工具的可执行文件,包括: java、javac、javap、keytool(密钥管理工具)、javadoc(Java文档工具)等。
COPYRIGHT文件:版权信息。
db目录:Java实现的数据库。
include目录:h头文件,C语言开发时用到的头文件。比如jni.h是开发jni程序时必须引用的头文件。
lib目录:Java类库,我们经常看到的dt.jar和tools.jar就在这个目录下。
src.zip文件:Java类库源码,包括了rt.jar库中的关键部分;除了Java类库,还包含了启动器(launcher)的源码(C语言实现)。
jre目录:Java运行环境。
(2)JRE目录结构
C:\Program Files\Java\jdk1.8.0_152\jre 的目录
2018/07/24 20:59 <DIR> .
2018/07/24 20:59 <DIR> ..
2018/07/24 20:59 <DIR> bin
2018/07/24 20:59 3,244 COPYRIGHT
2018/07/24 20:59 <DIR> lib
2018/07/24 20:59 40 LICENSE
2018/07/24 20:59 46 README.txt
2018/07/24 20:59 63,933 THIRDPARTYLICENSEREADME-JAVAFX.txt
2018/07/24 20:59 145,180 THIRDPARTYLICENSEREADME.txt
2018/07/24 20:59 955 Welcome.html
6 个文件 213,398 字节
4 个目录 16,691,589,120 可用字节
bin目录:包含了java运行所需要的可执行文件,比如java[.exe]
lib目录:包含了运行时依赖的java类库和动态链接库(.so或.dll或.dylib)。
三、自带工具(JDK包含的一些开发工具执行文件)
2018/07/24 20:59 15,904 appletviewer.exe
2018/07/24 20:59 16,416 extcheck.exe
2018/07/24 20:59 16,416 idlj.exe
2018/07/24 20:59 34,336 jabswitch.exe
2018/07/24 20:59 15,904 jar.exe
2018/07/24 20:59 16,416 jarsigner.exe
2018/07/24 20:59 15,904 java-rmi.exe
2018/07/24 20:59 206,880 java.exe
2018/07/24 20:59 15,904 javac.exe
2018/07/24 20:59 16,416 javadoc.exe
2018/07/24 20:59 148,512 javafxpackager.exe
2018/07/24 20:59 15,904 javah.exe
2018/07/24 20:59 15,904 javap.exe
2018/07/24 20:59 148,512 javapackager.exe
2018/07/24 20:59 206,880 javaw.exe
2018/07/24 20:59 319,520 javaws.exe
2018/07/24 20:59 15,904 jcmd.exe
2018/07/24 20:59 16,928 jconsole.exe
2018/07/24 20:59 16,416 jdb.exe
2018/07/24 20:59 15,904 jdeps.exe
2018/07/24 20:59 15,904 jhat.exe
2018/07/24 20:59 16,416 jinfo.exe
2018/07/24 20:59 15,904 jjs.exe
2018/07/24 20:59 175,136 jli.dll
2018/07/24 20:59 16,416 jmap.exe
2018/07/24 20:59 321,568 jmc.exe
2018/07/24 20:59 417 jmc.ini
2018/07/24 20:59 15,904 jps.exe
2018/07/24 20:59 16,416 jrunscript.exe
2018/07/24 20:59 16,416 jsadebugd.exe
2018/07/24 20:59 16,416 jstack.exe
2018/07/24 20:59 15,904 jstat.exe
2018/07/24 20:59 15,904 jstatd.exe
2018/07/24 20:59 196,640 jvisualvm.exe
2018/07/24 20:59 16,416 keytool.exe
2018/07/24 20:59 16,416 kinit.exe
2018/07/24 20:59 16,416 klist.exe
2018/07/24 20:59 16,416 ktab.exe
2018/07/24 20:59 829,264 msvcr100.dll
2018/07/24 20:59 16,416 native2ascii.exe
2018/07/24 20:59 16,416 orbd.exe
2018/07/24 20:59 16,416 pack200.exe
2018/07/24 20:59 16,416 policytool.exe
2018/07/24 20:59 15,904 rmic.exe
2018/07/24 20:59 15,904 rmid.exe
2018/07/24 20:59 16,416 rmiregistry.exe
2018/07/24 20:59 16,416 schemagen.exe
2018/07/24 20:59 16,416 serialver.exe
2018/07/24 20:59 16,416 servertool.exe
2018/07/24 20:59 16,416 tnameserv.exe
2018/07/24 20:59 199,712 unpack200.exe
2018/07/24 20:59 15,904 wsgen.exe
2018/07/24 20:59 16,416 wsimport.exe
2018/07/24 20:59 16,416 xjc.exe
下面通过表格的形式介绍所有工具的可执行文件:
可执行文件 | 工具类型 | 作用 |
---|---|---|
javac.exe | 基本工具 | Java语言编译器, 将Java源代码转换成字节码 |
java.exe | 基本工具 | Java应用程序启动器,直接从类文件执行Java应用程序字节代码 |
javadoc.exe | 基本工具 | Java API 文档生成器,从源码注释中提取文档 |
apt.exe | 基本工具 | Java API java 注释处理器 |
appletviewer.exe | 基本工具 | java applet 小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。 |
jar.exe | 基本工具 | java文件压缩打包工具 |
jdb.exe | 基本工具 | Java 调试器,debugger,查错工具 |
javah.exe | 基本工具 | C 头文件和stub生成器,用于写本地化方法,例如生产JNI样式的头文件。产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件 |
javap.exe | 基本工具 | class文件反编译工具,显示编译类文件中的可访问功能和数据,同时显示字节代码含义 |
extcheck.exe | 基本工具 | 用于检测jar包中的问题 |
keytool.exe | 基本工具 | 管理密钥库和证书 |
jarsigner.exe | 基本工具 | 生产和校验JAR签名 |
policytool.exe | 基本工具 | 有用户界面的规则管理工具 |
kinit.exe | 基本工具 | 用于获得和缓存网络认证协议Kerberos 票证的授予票证 |
klist.exe | 基本工具 | 凭据高速缓存和密钥表中的 Kerberos 显示条目 |
ktab.exe | 基本工具 | 密钥和证书管理工具 |
native2ascii.exe | Java国际化工具 | 将文本转化为 Unicode Latin-1。详情参考http://java.sun.com/javase/6/docs/technotes/tools/windows/native2ascii.html |
rmic.exe | 远程方法调用工具 | 生成远程对象的stubs and skeletons(存根和框架) |
rmid.exe | 远程方法调用工具 | Java 远程方法调用(RMI:Remote Method Invocation) 活化系统守护进程 |
rmiregistry.exe | 远程方法调用工具 | Java 远程对象注册表 |
serialver.exe | 远程方法调用工具 | 返回类的 serialVersionUID. |
tnameserv.exe | Java IDL and RMI-IIOP 工具 | Provides access to the naming service |
idlj.exe | Java IDL and RMI-IIOP 工具 | 生产映射到OMG IDL接口可以使Java应用程序使用CORBA的.java文件 |
orbd.exe | Java IDL and RMI-IIOP 工具 | 为客户可以在CORBA环境下透明的定位和调用服务器的稳定的对象提供支持 |
servertool.exe | Java IDL and RMI-IIOP 工具 | 为应用程序提供易于使用的接口用于注册,注销,启动,关闭服务器 |
pack200.exe | Java 部署工具 | 使用java gzip压缩工具将JAR文件转换为压缩的pack200文件,生产打包文件是高度压缩的JAR包,可以直接部署,减少下载时间 |
unpack200.exe | Java 部署工具 | 解包pack200文件为JARs |
htmlconverter.exe | Java 插件工具 | Java Plug-in HTML转换器 htmlconverter -gui 可以启动图形界面 |
javaws.exe | Java web 启动工具 | Java web 启动命令行工具 |
jvisualvm.exe | Java 故障检修,程序概要分析,监视和管理工具 | 一个图形化的Java虚拟机,不说了 大家研究一下就发现太酷了.这是想了解JVM的人的神器http://java.sun.com/javase/6/docs/technotes/guides/visualvm/index.html |
jconsole.exe | Java 故障检修,程序概要分析,监视和管理工具 | java监视台和管理控制台,图形界面的功能太强大了,运行一下就知道 ,不想多说,看了就知道 |
schemagen.exe | Java web 服务工具 | Java构架的XML Schema生成器 |
wsgen.exe | Java web 服务工具 | 生成 JAX-WS |
wsimport.exe | Java web 服务工具 | 生成 JAX-WS |
xjc.exe | Java web 服务工具 | 绑定编译器 |
jps.exe | 监视工具 | JVM Process Status 进程状态工具。列出目标系统的HotSpot JJVM , 监视Java虚拟机的性能,不支持Windows 98 和Windows ME 平台 |
jstat.exe | 监视工具 | 按照命令行的具体要求记录和收集一个JVM的性能数据 |
jstatd.exe | 监视工具 | JVM jstat 的守护进程 |
jinfo.exe | 故障检测和修理工具 | 配置或打印某个Java进程VM flag |
jhat.exe | 故障检测和修理工具 | 堆储存查看器 |
jmap.exe | 故障检测和修理工具 | Java内存图 |
jsadebugd.exe | 故障检测和修理工具 | Java 的 Serviceability Agent Debug的守护进程 |
jstack.exe | 故障检测和修理工具 | Java堆栈跟踪 |
jrunscript.exe | Java脚本工具 | 运行脚本 |