JDK

194 阅读2分钟

JDK(Java Development Kit)是 Java 开发工具包,它是用于开发、编译、调试和运行 Java 应用程序的核心环境。JDK 不仅包含JRE( Java 运行环境 ),还提供了开发所需的工具(如编译器、调试器、文档生成器等)和核心类库。


JDK 的核心组成

  1. JRE(Java Runtime Environment)

    • 包含 JVM(Java 虚拟机),负责执行 Java 字节码(.class 文件)。
    • 包含基础类库(如 java.langjava.util 等),支持 Java 程序运行。
  2. 开发工具

    • javac:Java 编译器,将 .java 源码文件编译为 .class 字节码文件。
    • java:启动 JVM 运行程序。
    • javadoc:生成 API 文档。
    • jdb:调试工具。
    • jar:打包工具,将类文件打包为 JAR 包。
  3. 标准类库(Java API)

    • JDK 提供了丰富的预定义类和方法(如集合框架、IO、网络、多线程等),开发者可以直接调用。

为什么软件依赖 JDK?

  1. 跨平台特性(Write Once, Run Anywhere)
    Java 程序依赖 JVM 运行,而 JVM 是 JDK/JRE 的一部分。软件开发者用 Java 编写程序后,用户需要安装 JRE 或 JDK 才能运行。

  2. 开发与编译需求

    • 如果软件是用 Java 开发的,编译源码必须使用 JDK 的 javac
    • 一些工具(如构建工具 Maven、Gradle)或框架(如 Spring)在开发时会调用 JDK 的功能。
  3. 依赖 JDK 的扩展功能

    • 某些高级功能(如 Java 原生接口 JNI、动态代理、注解处理)需要 JDK 提供的工具和库。
    • 企业级应用(如 Hadoop、Spark、Kafka)通常基于 Java 开发,运行时需要 JDK 环境。
  4. 调试与监控工具
    JDK 提供 jconsolejstackjmap 等工具,用于监控和调试 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 才能进行开发和构建。