|名词定义|
JDK(Java Development Kit)是Sun公司针对Java开发人员发布的免费软件开发工具包(SDK,Software development kit)。
自从Java推出以来,JDK已经成为使用最广泛的Java SDK。由于JDK的一部分特性采用商业许可证,而非开源。因此,2006年Sun宣布将发布基于GPL的开源JDK,使JDK成为自由软件。在去掉了少量闭源特性之后,Sun最终促成了GPL的OpenJDK的发布。
|发展历程|
对于JDK而言,有其本身的发展历史,主要有如下的几个标志性版本:
1、1995年5月23,JDK1.0的开发包发布,同时在1996年的时候,JDK正式提供下载,标志着Java的诞生;
2、1998年12月04日,JDK1.2版本推出,而后Java正式更名为Java2;
3、2005年5月23 日,十周年大会上,推出JDK1.5版本,同时这个版本也是带来新特性以及开发支持更多的历史版本,可以说这一版本直接决定了Java后续十年的技术核心;
4、2014年,Java提供了JDK1.8版本,并且支持有Lambda表达式,而且可以使用函数式编程;
5、2017年,Java提供了JDK1.9版本,进一步提升了JDK1.8的稳定性;
6、2018年,Java提供了JDK1.10版本,是属于JDK1.9的稳定版。
|适用场景|
作为Java语言的SDK,普通用户并不需要安装JDK来运行Java程序,而只需要安装JRE(Java Runtime Environment)。而程序开发者必须安装JDK来编译、调试程序。
|JDK组件|
JDK包含了一批用于Java开发的组件,其中包括:
javac:编译器,将后缀名为.java的源代码编译成后缀名为“.class”的字节码
java:运行工具,运行.class的字节码
jar:打包工具,将相关的类文件打包成一个文件
javadoc:文档生成器,从源码注释中提取文档,注释需符合规范
jdb debugger:调试工具
jps:显示当前java程序运行的进程状态
javap:反编译程序
appletviewer:运行和调试applet程序的工具,不需要使用浏览器
javah:从Java类生成C头文件和C源文件。这些文件提供了连接胶合,使Java和C代码可进行交互。
javaws:运行JNLP程序
extcheck:一个检测jar包冲突的工具
apt:注释处理工具
jhat:java堆分析工具
jstack:栈跟踪程序
jstat:JVM检测统计工具
jstatd:jstat守护进程
jinfo:获取正在运行或崩溃的java程序配置信息
jmap:获取java进程内存映射信息
idlj:IDL-to-Java编译器。将IDL语言转化为java文件
policytool:一个GUI的策略文件创建和管理工具
jrunscript:命令行脚本运行
JDK中还包括完整的JRE(Java Runtime Environment),Java运行环境,也被称为private runtime。包括了用于产品环境的各种库类,如基础类库rt.jar,以及给开发人员使用的补充库,如国际化与本地化的类库、IDL库等等。
JDK中还包括各种样例程序,用以展示Java API中的各部分。
|参考资料|
[1] 阿里云大学
[2] Java开发者
[3].OpenJDK.
[4].Oracle公布JVM未来战略 JDK将包含闭源特性 - 51CTO.COM. 开发频道 51CTO.COM. [2018-03-20].
[5].Javah - 软件人生,雕刻时光 - ITeye博客. ITeye博客. [2018-03-20] (中文(中国大陆)).
[6].Java中Annotation(注释)系列学习笔记(4)_时空网络_新浪博客. [2018-03-20].
[7].IBM Knowledge Center. IBM Knowledge Center. [2018-03-20] (美国英语).