当前位置: 代码网 > it编程>编程语言>Java > JDK 17下载、安装、配置到验证的完整教程

JDK 17下载、安装、配置到验证的完整教程

2026年08月20日 Java 我要评论
在实际 java 开发中,jdk 的安装是项目启动的第一步。很多开发者,尤其是刚接触 java 或从旧版本升级的开发者,常常在环境配置这一步就遇到各种问题:环境变量配置错误导致 java -vers

在实际 java 开发中,jdk 的安装是项目启动的第一步。很多开发者,尤其是刚接触 java 或从旧版本升级的开发者,常常在环境配置这一步就遇到各种问题:环境变量配置错误导致 java -version 命令不生效、多个 jdk 版本共存时系统调用混乱、或者下载了错误的安装包导致 ide 无法识别。这些问题看似基础,却直接影响后续所有开发、编译和运行环节的顺畅度。

本文将围绕 jdk 17 的安装,提供一个从下载、安装、配置到验证的完整教程。无论你是 windows、macos 还是 linux 用户,都能找到对应的操作步骤。更重要的是,我们会深入解释每一步背后的原理,比如环境变量 java_home path 的作用、不同安装包(如 .msi .pkg .tar.gz )的区别,以及如何在同一台机器上管理多个 jdk 版本。完成本文的实践后,你将拥有一个稳定、可验证的 jdk 17 开发环境,并能清晰排查常见的环境配置问题。

1. 理解 jdk 17 及其安装前的关键决策

在开始下载安装包之前,我们需要明确几个核心概念和选择,这能避免后续很多不必要的麻烦。

1.1 jdk、jre 与 jvm:它们分别是什么?

很多新手会混淆这三个术语。简单来说:

  • jvm (java virtual machine) :java 虚拟机。它是 java 程序运行的“引擎”,负责执行编译后的字节码( .class 文件)。但仅有 jvm 无法开发 java 程序。
  • jre (java runtime environment) :java 运行时环境。它包含了 jvm 和运行 java 应用程序所必需的核心类库。如果你只想运行别人写好的 java 程序(比如一个 .jar 包),安装 jre 就够了。
  • jdk (java development kit) :java 开发工具包。它是开发者的完整工具箱, 包含了 jre 和一系列开发工具 ,如编译器 ( javac )、调试器 ( jdb )、打包工具 ( jar ) 等。要进行 java 开发,必须安装 jdk。

因此,我们的目标是安装 jdk 17

1.2 选择哪个供应商的 jdk?

自从 oracle 调整了 jdk 的授权协议后,市场上出现了多个提供 jdk 的供应商。对于学习和大多数生产环境,我们主要关注以下两个:

  1. oracle jdk :由 oracle 公司官方提供。从 jdk 17 开始,oracle 宣布其 jdk 在 通用免费条款和条件 下免费提供,包括商业用途,但需遵守其 oracle 免费条款和条件 协议。它通常包含一些 oracle 特有的商业特性。
  2. openjdk :这是 jdk 的 开源参考实现 。由 openjdk 社区维护,遵循 gplv2+cpe 协议。包括 adoptium(原 adoptopenjdk,现提供 eclipse temurin)、amazon corretto、azul zulu、microsoft build of openjdk 等,都是基于 openjdk 源码构建的发行版,它们在功能上与 oracle jdk 几乎完全一致,且对个人和商业使用完全免费。

如何选择?

  • 对于学习和一般开发 :推荐使用 eclipse temurin amazon corretto 。它们免费、稳定,且由大型组织(eclipse基金会、亚马逊)提供长期支持。
  • 对于需要特定 oracle 商业功能的企业环境 :可选择 oracle jdk,但务必仔细阅读其许可协议。

本文将以 eclipse temurin jdk 17 为例进行安装,因为它是一个中立的、广泛使用的选择。

1.3 确认系统架构与版本

下载前,请确认你的操作系统是 64 位还是 32 位(现代电脑基本都是 64 位),以及是 windows、macos 还是 linux。

  • windows :在“设置”->“系统”->“关于”中查看“系统类型”。
  • macos :点击屏幕左上角苹果菜单 -> “关于本机”,查看芯片信息(apple silicon 为 arm 架构,intel 为 x64 架构)。
  • linux :在终端执行 uname -m ,输出 x86_64 表示 64 位 intel/amd, aarch64 表示 arm。

2. 下载与安装:针对不同操作系统的步骤

我们将分系统讲解。请根据你的操作系统选择对应的章节。

2.1 windows 系统安装 jdk 17

windows 用户通常有两种安装方式:使用安装程序( .msi )或解压压缩包( .zip )。使用 .msi 安装程序更便捷,它会自动处理一些注册表项,并可选配置系统环境变量。

步骤 1:下载安装包

  1. 访问 eclipse temurin 官网的下载页面。
  2. 在版本列表中选择 jdk 17 (lts)
  3. 在操作系统列表中选择 windows
  4. 根据你的系统架构选择 x64 (绝大多数情况)或 aarch64
  5. 包类型选择 .msi installer 。
  6. 点击下载链接。

步骤 2:运行安装程序

  1. 双击下载好的 .msi 文件(如 openjdk17u-jdk_x64_windows_hotspot_17.0.11_9.msi )。
  2. 在安装向导中,点击“next”。
  3. 在“destination folder”界面, 记住 jdk 的安装路径 。默认路径通常是 c:\program files\eclipse adoptium\jdk-17.0.11+9 。你可以保持默认或修改到一个简单的路径,例如 d:\java\jdk-17 。路径中 不要包含中文或空格 ,这可以避免未来某些古老工具或脚本的兼容性问题。
  4. 继续点击“next”,直到安装完成。

步骤 3:验证安装(初步) 安装完成后,可以打开一个新的命令提示符(cmd)或 powershell,输入以下命令:

java -version

如果安装程序 自动配置了环境变量 ,你应该能看到类似下面的输出,其中包含“temurin”字样:

openjdk version "17.0.11" 2024-04-16
openjdk runtime environment temurin-17.0.11+9 (build 17.0.11+9)
openjdk 64-bit server vm temurin-17.0.11+9 (build 17.0.11+9, mixed mode, sharing)

如果提示“ java 不是内部或外部命令”,说明环境变量未自动配置,我们需要手动配置。这是 windows 安装中最关键的一步。

2.2 macos 系统安装 jdk 17

macos 用户可以通过 .pkg 安装包或 homebrew 安装。

方法一:使用 .pkg安装包(推荐)

  1. 访问 eclipse temurin 下载页面。
  2. 选择 jdk 17 (lts) ,操作系统选择 macos
  3. 根据芯片选择 x64 (intel芯片)或 aarch64 (apple silicon,即 m系列芯片)。
  4. 包类型选择 .pkginstaller 并下载。
  5. 双击 .pkg 文件,按照图形界面指引完成安装。安装程序会自动将 jdk 配置到系统路径。

方法二:使用 homebrew 如果你已经安装了 homebrew,打开终端(terminal)执行以下命令:

# 首先,添加 adoptium 的 tap(如果尚未添加)
brew tap homebrew/cask-versions
# 然后,安装 temurin jdk 17
brew install --cask temurin17

验证安装: 打开终端,输入:

java -version

应看到 temurin jdk 17 的版本信息。macos 系统环境变量管理相对透明,通常安装后即可使用。

2.3 linux 系统安装 jdk 17

linux 用户通常使用包管理器或解压 .tar.gz 压缩包。

方法一:使用包管理器(以 ubuntu/debian 为例)

# 1. 更新包索引
sudo apt update

# 2. 安装 temurin jdk 17
sudo apt install temurin-17-jdk

# 3. 验证安装
java -version

方法二:手动解压 .tar.gz(通用方法)

从官网下载 linux 对应的 .tar.gz 包(如 openjdk17u-jdk_x64_linux_hotspot_17.0.11_9.tar.gz )。

打开终端,切换到下载目录,解压到目标目录(通常为 /usr/lib/jvm /opt ):

sudo tar -xzf openjdk17u-jdk_x64_linux_hotspot_17.0.11_9.tar.gz -c /usr/lib/jvm

解压后,会在 /usr/lib/jvm 下生成一个类似 jdk-17.0.11+9 的目录。

接下来需要手动配置环境变量,我们将在下一章统一讲解。

3. 配置环境变量:让系统找到你的 jdk

环境变量是操作系统用来存储系统级或用户级配置信息的键值对。对于 jdk,最重要的两个环境变量是 java_home path

  • java_home :指向 jdk 的安装根目录。许多 java 应用服务器(如 tomcat)、构建工具(如 maven、gradle)和 ide(如 intellij idea、eclipse)都依赖这个变量来定位 java 环境。
  • path:系统用于查找可执行文件的目录列表。当你在命令行输入 java javac 时,系统会按照 path 中列出的目录顺序去查找这些命令。我们需要将 %java_home%\bin (windows)或 $java_home/bin (macos/linux)添加到 path 中。

下面针对不同系统演示如何配置。

3.1 windows 手动配置环境变量

如果安装后 java -version 不生效,请按以下步骤操作:

1.确定 jdk 安装路径 :如果你忘记了,通常可以在 c:\program files\eclipse adoptium\ 或你自定义的目录下找到。

2.设置 java_home

  • 在 windows 搜索框输入“环境变量”,选择“编辑系统环境变量”。
  • 点击“环境变量”按钮。
  • 在“系统变量”区域,点击“新建”。
  • 变量名输入 java_home
  • 变量值输入你的 jdk 安装 根目录 ,例如 d:\java\jdk-17 确保路径正确,不要包含 \bin目录
  • 点击“确定”。

3.编辑 path 变量

  • 在“系统变量”区域,找到并选中 path 变量,点击“编辑”。
  • 点击“新建”,然后输入 %java_home%\bin
  • 重要 :为了确保系统优先使用我们配置的 jdk,可以将此项通过“上移”按钮移动到列表顶部。
  • 逐一点击“确定”关闭所有窗口。

4.验证配置

打开一个 新的 命令提示符(cmd)或 powershell(必须重新打开,环境变量才会生效)。

依次输入以下命令:

echo %java_home%
java -version
javac -version

echo %java_home% 应正确显示你设置的路径。

java -version javac -version 都应显示 jdk 17 的信息。 javac 是编译器,它的存在是验证 jdk(而不仅仅是 jre)安装成功的关键。

3.2 linux 手动配置环境变量

对于通过解压 .tar.gz 安装的用户,需要配置环境变量。通常修改 ~/.bashrc (针对当前用户)或 /etc/profile (针对所有用户)文件。

使用文本编辑器打开配置文件,例如:

nano ~/.bashrc

在文件末尾添加以下内容(请将 /usr/lib/jvm/jdk-17.0.11+9 替换为你的实际 jdk 路径):

export java_home=/usr/lib/jvm/jdk-17.0.11+9
export path=$java_home/bin:$path

注意 $path 放在后面,用冒号分隔。将 $java_home/bin 放在前面是为了确保系统优先使用我们配置的 jdk。

保存并退出编辑器(在 nano 中按 ctrl+x ,然后按 y ,再按回车)。

使配置立即生效:

source ~/.bashrc

验证配置:

echo $java_home
java -version
javac -version

3.3 环境变量配置的常见问题与排查

问题现象可能原因检查与解决方式
‘java’ 不是内部或外部命令1. path 变量未包含 %java_home%\bin 。
2. java_home 变量设置错误或未设置。
3. 修改环境变量后未重启终端。
1. 检查 path 中是否有 %java_home%\bin 。
2. 检查 java_home 的值是否正确指向 jdk 根目录。
3. 关闭所有命令行窗口重新打开。
‘javac’ 不是内部或外部命令安装了 jre 而非 jdk,或者 path 指向了 jre 的 bin 目录。确认安装的是 jdk,并确保 java_home 指向 jdk 根目录, path 指向 %java_home%\bin 。
版本号与预期不符系统 path 中存在其他 java 路径,且优先级更高。检查 path 变量,将 %java_home%\bin 或 $java_home/bin 移动到最前面。在命令行执行 where java (windows)或 which java (macos/linux)查看实际调用的 java 命令位置。

4. 进阶:多版本 jdk 共存与管理

在实际开发中,你可能需要同时维护多个使用不同 java 版本的项目。让多个 jdk 共存并灵活切换是一个必备技能。

4.1 多版本共存的原理

多个 jdk 可以安装在同一台机器上。关键在于 java_home path 环境变量最终指向哪个 jdk 的路径 。系统通过 path 来查找 java javac 等命令。我们通过切换 java_home 的值,并确保 path 中引用了正确的 %java_home%\bin ,来实现版本切换。

4.2 在 windows 上管理多版本

方法一:手动切换环境变量 这是最直接的方法。安装多个 jdk 到不同目录,例如:

  • d:\java\jdk-8
  • d:\java\jdk-11
  • d:\java\jdk-17

当需要切换版本时,去系统环境变量设置中修改 java_home 的值,然后重启所有命令行工具。这种方法比较麻烦。

方法二:使用批处理脚本 创建一个批处理文件(如 switch_jdk.bat )来动态设置环境变量:

@echo off
set java_home=d:\java\jdk-17
echo java_home switched to jdk 17.

在需要使用特定版本 jdk 的命令行中,先运行这个脚本。但此方法设置的环境变量仅对当前 cmd 会话有效。

方法三:使用第三方工具(推荐) 对于 windows 用户,强烈推荐使用 sdkman! (虽然它源自 unix,但现已支持 windows via wsl/git bash/cygwin)或 jabba 。这些工具可以让你通过简单的命令安装、列出、使用和切换不同版本的 jdk。

4.3 在 macos/linux 上管理多版本

使用 sdkman!(强烈推荐) sdkman! 是一个管理多个 sdk 版本的工具,支持 java、groovy、scala 等。

安装 sdkman!:

curl -s "https://get.sdkman.io" | bash
source "$home/.sdkman/bin/sdkman-init.sh"

列出所有可安装的 java 版本:

sdk list java

安装指定版本的 jdk(例如 temurin 17):

sdk install java 17.0.11-tem

切换当前终端使用的版本:

sdk use java 17.0.11-tem

设置某个版本为系统默认:

sdk default java 17.0.11-tem

手动使用 update-alternatives (debian/ubuntu) 如果你通过包管理器安装了多个 jdk,可以使用 update-alternatives 管理:

# 注册 jdk
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-17/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-17/bin/javac 1
# 切换版本
sudo update-alternatives --config java
sudo update-alternatives --config javac

5. 验证安装与编写第一个 java 程序

环境配置好后,我们需要进行终极验证:编写、编译并运行一个简单的 java 程序。

5.1 终极验证步骤

检查关键命令 :打开终端或命令提示符,依次执行:

java -version  # 检查运行时环境
javac -version # 检查编译器,确认是 jdk
which java     # (macos/linux) 查看 java 命令的实际路径
where java     # (windows) 查看 java 命令的实际路径
echo $java_home # (macos/linux) 或 echo %java_home% (windows) 查看变量

所有命令都应指向你刚安装的 jdk 17 路径。

编写 helloworld

创建一个工作目录,例如 d:\javaprojects ~/java-projects

在该目录下,用文本编辑器创建一个新文件,命名为 helloworld.java

输入以下经典代码:

public class helloworld {
    public static void main(string[] args) {
        system.out.println("hello, world! from jdk " + system.getproperty("java.version"));
    }
}

注意 :文件名必须与公共类名 helloworld 完全一致,包括大小写。

编译 java 文件

在终端中,导航到 helloworld.java 所在的目录。

执行编译命令:

javac helloworld.java

如果编译成功,该目录下会生成一个 helloworld.class 文件(字节码文件)。没有任何输出通常意味着成功。

运行 java 程序

执行运行命令:

java helloworld

注意 :运行命令使用的是类名 helloworld ,而不是文件名 helloworld.class

如果一切正常,你将看到输出:

hello, world! from jdk 17.0.11

5.2 验证过程中的常见错误

错误信息原因分析解决方案
错误: 找不到或无法加载主类 helloworld1. 执行 java 命令的目录不对, class 文件不在当前目录或类路径下。
2. 类名拼写错误。
3. 执行了 java helloworld.class 。
1. 使用 cd 命令切换到 helloworld.class 所在目录再执行 java helloworld 。
2. 检查类名大小写。
3. 确保命令是 java helloworld 。
错误: 类 helloworld 是公共的, 应在名为 helloworld.java 的文件中声明源代码中 public class 的名字与文件名不一致。确保文件名和 public class 后的名字完全一致。
javac: 未找到命令path 环境变量未正确配置,或指向了不包含 javac 的 jre。回顾第 3 章,检查 java_home 和 path 配置,确保指向的是 jdk 的 bin 目录。

6. 集成开发环境(ide)配置

在 ide 中配置 jdk 是项目开发的最后一步。这里以 intellij idea 和 eclipse 为例。

6.1 在 intellij idea 中配置 jdk 17

  1. 打开项目结构设置 file -> project structure (ctrl+alt+shift+s)。
  2. 配置 sdk
    • project settings -> project 下,点击 sdk 下拉框,选择 add sdk -> jdk
    • 在弹出的文件选择器中,导航到你的 jdk 17 安装根目录 (例如 d:\java\jdk-17 ),点击 ok
    • idea 会自动识别并命名为“17”。
  3. 配置模块 :在 project settings -> modules 中,确保每个模块的 dependencies 选项卡里, module sdk 都选择了刚才添加的 jdk 17。
  4. 配置编译器 :在 settings -> build, execution, deployment -> compiler -> java compiler 中,可以设置项目和各模块的 target bytecode version 为 17。

6.2 在 eclipse 中配置 jdk 17

  1. 打开首选项 window -> preferences
  2. 添加 jre :导航到 java -> installed jres
  3. 点击 add... ,选择 standard vm ,点击 next
  4. 设置 jre home :点击 directory... ,选择你的 jdk 17 安装根目录 。eclipse 会自动填充 jre name (如“jdk-17”)。
  5. 点击 finish 并勾选新添加的 jre 作为默认。
  6. 为项目指定 jre :右键点击项目 -> properties -> java build path -> libraries 选项卡。选中 jre system library ,点击 edit... ,选择 workspace default jre (jdk-17)

关键点 :在 ide 中,你需要指定的是 jdk 的根目录 ,而不是 bin 目录。ide 会自己找到必要的工具和库。

7. 生产环境考量与最佳实践

将 jdk 17 用于学习或开发测试很简单,但在生产环境部署时,需要考虑更多。

  1. 版本选择 :jdk 17 是长期支持版本,适合生产环境。始终使用该 lts 版本的最新更新版,以获取安全补丁和错误修复。
  2. 供应商选择 :生产环境建议选择提供长期支持且条款清晰的 openjdk 发行版,如 eclipse temurin、amazon corretto 或 microsoft build of openjdk。明确其支持周期。
  3. 安装方式
    • linux 服务器 :优先使用操作系统官方的包管理器(如 yum , apt )安装,便于统一管理和更新。其次考虑下载 .tar.gz 包解压到 /opt /usr/lib/jvm 目录。
    • 容器化部署 :在 dockerfile 中,使用官方镜像或基于 eclipse-temurin:17-jdk 这样的基础镜像,确保环境一致性。
  4. 环境变量隔离 :在生产服务器上,避免在全局环境变量中设置 java_home 。应该为每个应用服务(如 tomcat)在其启动脚本(如 setenv.sh catalina.sh )中单独设置 java_home java_opts (jvm 参数)。这可以防止多个应用因共用 jdk 版本或参数而产生冲突。
  5. 权限管理 :jdk 安装目录应对运行 java 进程的用户(如 tomcat , appuser )具有读取和执行权限,但通常不需要写权限。
  6. 安全加固 :定期关注 jdk 供应商的安全公告。移除或禁用不需要的模块,可以通过 jlink 工具创建自定义的、更小的运行时映像。审查并设置安全的 jvm 参数,例如限制堆内存、设置垃圾回收器、启用安全随机数生成器等。
  7. 监控与日志 :配置 jvm 的 gc 日志和性能监控(如 jmx),以便在出现性能问题时进行诊断。确保应用程序日志和 jvm 日志被妥善收集和管理。

完成以上所有步骤,你就不仅是在电脑上安装了一个软件,而是系统地搭建并理解了一个可靠的 java 开发与运行基础环境。这个环境是后续学习 spring boot、微服务、大数据等所有 java 相关技术的基石。当遇到环境问题时,按照从“检查命令路径”到“验证 ide 配置”的排查链路,你能快速定位并解决绝大多数问题。

以上就是jdk 17下载、安装、配置到验证的完整教程的详细内容,更多关于jdk17下载与安装的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com