JDK(Java Development Kit)是 Java 开发工具包,它是用于开发、编译、调试和运行 Java 应用程序的核心环境。JDK 不仅包含JRE( Java 运行环境 ),还提供了开发所需的工具(如编译器、调试器、文档生成器等)和核心类库。
JDK 的核心组成
-
JRE(Java Runtime Environment)
- 包含 JVM(Java 虚拟机),负责执行 Java 字节码(
.class文件)。 - 包含基础类库(如
java.lang、java.util等),支持 Java 程序运行。
- 包含 JVM(Java 虚拟机),负责执行 Java 字节码(
-
开发工具
javac:Java 编译器,将.java源码文件编译为.class字节码文件。java:启动 JVM 运行程序。javadoc:生成 API 文档。jdb:调试工具。jar:打包工具,将类文件打包为 JAR 包。
-
标准类库(Java API)
- JDK 提供了丰富的预定义类和方法(如集合框架、IO、网络、多线程等),开发者可以直接调用。
为什么软件依赖 JDK?
-
跨平台特性(Write Once, Run Anywhere)
Java 程序依赖 JVM 运行,而 JVM 是 JDK/JRE 的一部分。软件开发者用 Java 编写程序后,用户需要安装 JRE 或 JDK 才能运行。 -
开发与编译需求
- 如果软件是用 Java 开发的,编译源码必须使用 JDK 的
javac。 - 一些工具(如构建工具 Maven、Gradle)或框架(如 Spring)在开发时会调用 JDK 的功能。
- 如果软件是用 Java 开发的,编译源码必须使用 JDK 的
-
依赖 JDK 的扩展功能
- 某些高级功能(如 Java 原生接口 JNI、动态代理、注解处理)需要 JDK 提供的工具和库。
- 企业级应用(如 Hadoop、Spark、Kafka)通常基于 Java 开发,运行时需要 JDK 环境。
-
调试与监控工具
JDK 提供jconsole、jstack、jmap等工具,用于监控和调试 Java 应用的性能。
常见依赖 JDK 的场景
- 企业级 Java 应用:如银行系统、ERP 系统(基于 Java EE)。
- 大数据与分布式系统:Hadoop、Spark、Flink 等。
- Android 开发:虽然 Android 使用自己的 SDK,但部分工具链依赖 JDK。
- 开发工具:IntelliJ IDEA、Eclipse 等 IDE 需要 JDK 支持。
- 构建工具:Maven、Gradle 在编译和打包时依赖 JDK。
JDK 与 JRE 的区别
- JRE:仅用于运行 Java 程序(普通用户安装即可)。
- JDK:包含 JRE + 开发工具(开发者必须安装)。
总结
JDK 是 Java 生态的核心,它提供了开发、编译和运行 Java 程序所需的一切。
许多软件依赖 JDK,要么是因为它们用 Java 编写,要么需要 JDK 提供的工具和类库。
即使某些软件最终用户只需 JRE,但开发者必须安装 JDK 才能进行开发和构建。