Java 开发工具包 (JDK) 提供了构建所有面向 java 平台的应用程序的基础。JDK 包括执行各种任务的各种工具和实用程序,包括将源代码编译成字节码、打包应用程序、启动 Java 虚拟机 (JVM) 和管理 Java 应用程序的运行时环境。
什么是 JDK?
JDK 是一个软件包,其中包含各种工具和实用程序,可以开发、打包、监控和部署为任何标准 Java 平台构建的应用程序,包括 Java 平台标准版 (Java SE); Java 平台,微型版 (Java ME);和 Java 平台企业版 (Java EE)。
Java平台
过去,如果说 JDK 专门针对程序语言 Java 是正确的。然而,Java 7 引入了一种特殊的结构,使得 Groovy、Clojure 或 Kotlin 等外围编程语言更容易编译成 Java 字节码并使用 Java 运行时环境 (JRE) 执行。因此,今天存在的 Java 平台不仅包括 Java,还包括使用 JDK 工具并在 Java 运行时执行的各种其他外围语言。
JDK 组件、工具和实用程序
JDK 的 bin 目录提供了有助于软件开发过程的各种功能和工具。一些更流行的 JDK 实用程序包括:
javac:此实用程序用于将 Java 源代码编译为 Java 字节码。
rmic:此实用程序创建用于远程方法调用 (RMI) 的骨架和存根。
jar:此压缩实用程序将大量文件聚合到单个 Java ARchive (jar) 文件中。jar 实用程序使用所有最常见的 zip 实用程序都使用的标准压缩算法。
javadoc:此实用程序可以检查类的名称和包含在类中的方法,以及使用特殊注释来为 Java 代码创建应用程序编程接口 (API) 文档。
wsgen:这会生成 Java API for XML Web Services (JAX-WS) 所需的各种工件。
javap:此实用程序反汇编类文件,生成有关给定编译组件的方法、属性和属性的信息。
JDK 还包含许多用于检查 JVM 运行时行为的工具,包括 Java Mission Control (JMC)、Java Flight Recorder (JFR) 和 VisualVM。
JDK和JVM的区别
在 JDK bin 目录中,还有一个名为 java 的实用程序。该实用程序将采用任何包含可运行 main 方法的 Java 应用程序并将其作为软件程序执行。当 Java 应用程序的源代码被编译时,它被编译成字节码。字节码是 Java 源代码和低级机器代码之间的中介。当调用 java 实用程序时,会创建一个 JVM,它使用即时 (JIT) 编译器将字节码转换为机器码。这种从 Java 字节码到低级计算机指令的即时转换是使 Java 应用程序跨平台和硬件无关的关键。
JDK 与 JRE 比较
下载和安装 Java 时,有两种可能的选择。第一种是下载安装JRE,第二种是下载安装JDK。任何用 Java 编写的程序,除了标准的 Java 库集和简单的执行环境之外,不需要任何额外功能,都可以在 JRE 提供的 JVM 上成功运行。但是,如果需要任何补充功能,例如需要即时编译 Java 源代码或生成身份验证证书,则需要 JDK。JDK 包含自己的 JRE,但在 JRE 的基本功能之外还提供了各种额外的功能。
一些需要安装 JDK 而不是 JRE 的产品包括 Jenkins、Maven、IBM WebSphere、JMeter、Tomcat 和 Apache Karaf。
Java SE 和 JDK
JDK 与 Java SE 定义的所有库一起打包。标准 API 包括用于实用程序、网络、输入/输出 (I/O)、加密和 XML 处理的包。JDK 还包括 SE 对使用 Abstract Window Toolkit (AWT)、Swing 和 JavaFX 包的用户界面 (UI) 开发的支持。
JDK 库
但是,JDK 不包括对 servlet、Java ServerPages (JSP) 和 Enterprise JavaBeans (EJB) 等组件的支持。这些组件是构建在 Java SE 之上的 Java EE 平台的一部分。类似地,JDK 没有对使用 Java ME 进行微设备开发的固有支持,尽管 Java ME 确实构建在并利用了通过 JDK 提供的所有功能和工具。JDK 代表 Java 开发人员可以使用的一组核心库、实用程序和工具。使用 Java 构建的后续 API、平台和框架都构建在 JDK 提供的设施之上。
外围语言
Groovy、Clojure、Scala 和 Kotlin 等外围编程语言继续流行。这些语言都在 JDK 上运行,但提供了克服 Java 语言限制的各种功能。例如,Groovy 提供了强大的脚本功能。Scala 和 Clojure 解决了 Java 程序遇到的各种可伸缩性问题。而且 Kotlin 极大地简化了 Android 应用程序的开发。所有这些语言都在 JVM 上运行,并利用 Java 平台中内置的标准库和其他功能。
经过 20 多年的可用性,JDK 已经证明自己足够可靠,可以承受最极端的环境和工作负载,并且能够支持在 Java 语言本身之外添加额外功能的新语言,JDK 将不可避免地成为未来几年 IT 界的主要参与者。
了解更多
,