跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

JDK 下载、安装与环境配置详解

综述由AI生成Java JDK 的定义、组成及主流版本选择。涵盖了 Windows、macOS 和 Linux 系统的下载与安装步骤,包括环境变量配置(JAVA_HOME 和 Path)的具体操作。内容包含 JDK 目录结构解析、核心 API 包说明、常用工具链(javac、java、jconsole 等)的使用方法及实际代码示例。最后提供了常见问题的解答,帮助开发者快速搭建 Java 开发环境并理解 JDK 基础原理。

小熊软糖发布于 2026/3/30更新于 2026/5/2635 浏览
JDK 下载、安装与环境配置详解

一、什么是 JDK?

JDK(Java Development Kit)是 Java 开发工具包的缩写,它是 Java 开发的核心组件。JDK 不仅包含了 Java 运行环境(JRE),还包含了一系列开发工具(如编译器 javac、调试器 jdb 等)和基础类库。

JDK 组成结构

  • JDK:Java 开发工具包
  • JRE:Java 运行环境
  • 开发工具:javac, javadoc, jdb 等
  • JVM:Java 虚拟机
  • 核心类库:提供基础 API 支持

二、JDK 下载指南

1. 选择 JDK 版本

目前主流版本有:

  • Java 8(LTS 长期支持版)
  • Java 11(LTS)
  • Java 17(LTS)
  • 最新版本(如 Java 21)

对于初学者,建议选择 Java 11 或 Java 17,因为它们都是长期支持版本。

2. 下载步骤

  1. 访问 Oracle 官网:https://www.oracle.com/java/technologies/
  2. 选择"Java SE"(标准版)
  3. 点击"JDK Download"
  4. 选择适合你操作系统的版本(Windows、macOS、Linux 等)
  5. 接受许可协议
  6. 点击下载链接

注意:从 Java 11 开始,Oracle 提供了两种 JDK 发行版:

  • Oracle JDK(商业用途需要许可证)
  • OpenJDK(完全开源)

三、JDK 安装详解

Windows 系统安装

  1. 双击下载的.exe 安装文件
  2. 按照向导提示操作
  3. 选择安装路径(建议使用默认路径)
  4. 等待安装完成

环境变量配置:

  1. 右键"此电脑" → 属性 → 高级系统设置 → 环境变量
  2. 在系统变量中新建:
    • 变量名:JAVA_HOME
    • 变量值:JDK 安装路径(如 C:\Program Files\Java\jdk-17.0.1)
  3. 编辑 Path 变量,添加:
    • %JAVA_HOME%\bin
    • %JAVA_HOME%\jre\bin

macOS 系统安装

  1. 双击下载的.dmg 文件
  2. 将 JDK 图标拖到 Applications 文件夹

打开终端验证:

java -version

Linux 系统安装

  1. 下载.tar.gz 压缩包
  2. 解压到指定目录:
tar -xzf jdk-17_linux-x64_bin.tar.gz -C /usr/local/
  1. 配置环境变量(编辑 ~/.bashrc 或 /etc/profile):
export JAVA_HOME=/usr/local/jdk-17.0.1
export PATH=$JAVA_HOME/bin:$PATH
  1. 使配置生效:
source ~/.bashrc

四、验证安装

在命令行/终端中执行以下命令:

java -version
javac -version

成功安装会显示类似信息:

java version "17.0.1" 2021-10-19 LTS
Java(TM) SE Runtime Environment (build 17.0.1+12-LTS-39)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.1+12-LTS-39, mixed mode, sharing)

五、JDK 目录结构解析

安装后的 JDK 目录结构如下:

jdk-17.0.1/
├── bin/           # 可执行文件
├── conf/          # 配置文件
├── include/       # C 语言头文件
├── jmods/         # JMOD 模块文件
├── legal/         # 法律声明
├── lib/           # 库文件
└── README.html    # 说明文档

重要目录详解

  1. bin 目录:包含所有命令行工具
    • javac:Java 编译器
    • java:Java 应用程序启动器
    • javadoc:API 文档生成器
    • jdb:Java 调试器
    • jconsole:Java 监控和管理控制台
  2. lib 目录:包含开发工具使用的附加库
    • tools.jar:工具类库
    • dt.jar:DesignTime 归档,包含 Swing 组件
  3. include 目录:本地接口编程(JNI)所需的 C/C++ 头文件

六、Java API 解析

Java API 是 Java 开发的核心,它包含了数千个预定义的类和接口,组织在不同的包中。

常用核心包

功能分类对应包
基础类库java.lang
集合与工具java.util
输入输出java.io
数学运算java.math
网络编程java.net
数据库连接java.sql, javax.sql
图形界面java.awt, javax.swing
并发编程java.util.concurrent

重要 API 示例

1. java.lang 包

这是最基础的包,自动导入到每个 Java 程序中。

// String 类示例
String str = "Hello, JDK!";
System.out.println(str.length());      // 输出字符串长度
System.out.println(str.substring(7));  // 输出"JDK!"
2. java.util 包

包含集合框架、日期时间工具等。

// ArrayList 示例
import java.util.List;
import java.util.ArrayList;

List<String> list = new ArrayList<>();
list.add("Java");
list.add("JDK");
list.add("API");
System.out.println(list.get(1));  // 输出"JDK"
3. java.io 包

输入输出相关功能。

// 文件读写示例
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

try (BufferedReader reader = new BufferedReader(new FileReader("test.txt"))) {
    String line;
    while ((line = reader.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
}

七、JDK 底层原理探秘

Java 编译与执行流程

  1. 开发者编写 Java 源代码 (.java)
  2. 使用 javac 编译为字节码 (.class)
  3. JVM 加载字节码
  4. 验证类文件格式
  5. 解释执行或 JIT 编译执行机器指令

JVM 内存模型

  • 方法区:存储类信息、常量、静态变量
  • 堆:存储对象实例和数组
  • 虚拟机栈:存储栈帧(局部变量表、操作数栈等)
  • 本地方法栈:为 Native 方法服务
  • 程序计数器:记录当前执行的字节码地址

类加载机制

Java 类加载采用双亲委派模型:

  1. 应用程序类加载器
  2. 扩展类加载器
  3. 启动类加载器

类加载过程:

  1. 加载:查找并加载类的二进制数据
  2. 验证:确保类文件格式正确
  3. 准备:为静态变量分配内存并设置默认值
  4. 解析:将符号引用转换为直接引用
  5. 初始化:执行静态初始化代码和静态初始化块

八、JDK 工具链详解

1. javac 编译器

基本用法:

javac HelloWorld.java

常用选项:

  • -d:指定输出目录
  • -cp 或 -classpath:指定类路径
  • -verbose:输出详细编译信息

2. java 启动器

基本用法:

java HelloWorld

常用选项:

  • -Xmx:设置最大堆内存(如 -Xmx512m)
  • -Xms:设置初始堆内存
  • -verbose:gc:输出 GC 详细信息

3. javap 反编译器

查看字节码:

javap -c HelloWorld

4. jconsole 监控工具

启动 Java 监控和管理控制台:

jconsole

九、实际开发示例

示例 1:使用 JDK 编译运行程序

  1. 创建 HelloWorld.java 文件:
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, JDK!");
    }
}
  1. 编译:
javac HelloWorld.java
  1. 运行:
java HelloWorld

示例 2:使用 JDK API 处理日期

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class DateExample {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        System.out.println("Today: " + today);
        
        LocalDate nextWeek = today.plusWeeks(1);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
        System.out.println("Next week: " + nextWeek.format(formatter));
    }
}

十、常见问题解答

Q1:如何选择 JDK 版本?

A:生产环境建议选择 LTS 版本(如 Java 11 或 17),学习可以使用最新版本体验新特性。

Q2:安装后 java 命令可用但 javac 不可用?

A:这通常是因为只安装了 JRE 而没有安装 JDK,或者环境变量配置不正确。

Q3:如何查看 JDK 默认使用的垃圾回收器?

A:使用命令:

java -XX:+PrintCommandLineFlags -version

Q4:如何设置编译时的编码?

A:使用 javac 的 -encoding 选项:

javac -encoding UTF-8 MyClass.java

结语

JDK 是 Java 开发的基石,掌握其下载、安装和核心组件的使用是每个 Java 开发者的必备技能。本文从实践出发,详细介绍了 JDK 的各个方面,希望能帮助你顺利开始 Java 开发之旅。随着对 Java 的深入学习,你会发现 JDK 中还有更多强大的功能和工具等待探索。

目录

  1. 一、什么是 JDK?
  2. JDK 组成结构
  3. 二、JDK 下载指南
  4. 1. 选择 JDK 版本
  5. 2. 下载步骤
  6. 三、JDK 安装详解
  7. Windows 系统安装
  8. macOS 系统安装
  9. Linux 系统安装
  10. 四、验证安装
  11. 五、JDK 目录结构解析
  12. 重要目录详解
  13. 六、Java API 解析
  14. 常用核心包
  15. 重要 API 示例
  16. 1. java.lang 包
  17. 2. java.util 包
  18. 3. java.io 包
  19. 七、JDK 底层原理探秘
  20. Java 编译与执行流程
  21. JVM 内存模型
  22. 类加载机制
  23. 八、JDK 工具链详解
  24. 1. javac 编译器
  25. 2. java 启动器
  26. 3. javap 反编译器
  27. 4. jconsole 监控工具
  28. 九、实际开发示例
  29. 示例 1:使用 JDK 编译运行程序
  30. 示例 2:使用 JDK API 处理日期
  31. 十、常见问题解答
  32. Q1:如何选择 JDK 版本?
  33. Q2:安装后 java 命令可用但 javac 不可用?
  34. Q3:如何查看 JDK 默认使用的垃圾回收器?
  35. Q4:如何设置编译时的编码?
  36. 结语
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 主流开源 AI 无人机巡检系统项目调研
  • 前端状态管理:Recoil 原子化方案详解
  • Google 推出医学治疗通用大模型 Tx-LLM,多项任务超越 SOTA
  • 2026 年 RAG 技术演进:基于 DeepSeek 与 Neo4j 构建企业智能体系
  • ComfyUI:构建高效 AI 绘画与图像生成工作流
  • 数据结构:二叉树基础概念与堆实现详解
  • OpenCode 开源 AI 编程助手:从安装到进阶实战指南
  • GEC6818 开发板嵌入式智能家居 UI 设计实战
  • 基于 Jenkins 与 Gitea 的离线环境 CI/CD 自动化搭建指南
  • 前端代码分割与懒加载实战指南
  • Open WebUI Docker 容器化部署最佳实践
  • Python 医疗 AI 常用库及案例解析
  • 基于 ECharts 与 Three.js 的碳排放可视化大屏实现
  • Python 股票数据分析系统搭建指南
  • LFM2.5-1.2B-Thinking 打造个人 AI 写作助手指南
  • 8 款 AI 降重工具对比:继续教育论文写作避坑指南
  • LangChain 工具调用与结构化输出实战
  • AutoGPT+Python:自主 AI 智能体开发与实战
  • 大模型 LLM 量化的 5 个基础技术知识
  • 节点小宝 4.0 macOS 客户端正式发布

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online