JDK 17 下载、安装与配置全攻略:从发行版选择到环境变量设置 📅 2026/8/13 23:48:43 1. 项目概述为什么是JDK 17如果你刚开始接触Java开发或者正准备将手头的项目升级到一个更现代、更高效的Java版本那么JDK 17绝对是一个绕不开的里程碑式选择。作为继JDK 8和JDK 11之后又一个长期支持版本JDK 17在2021年9月发布时就备受瞩目。它不仅仅是版本号的简单迭代更代表了Java语言和平台在性能、安全性和开发体验上的一次集中进化。对于开发者而言选择JDK 17意味着你能立即享受到一系列成熟的、经过验证的语言增强特性比如实用的“密封类”来构建更严谨的领域模型或者“模式匹配”让代码逻辑更简洁直观。更重要的是作为长期支持版本它意味着在未来数年内你都能获得来自Oracle或其他供应商的稳定更新和安全补丁这对于企业级应用和需要长期维护的项目至关重要。因此无论是搭建全新的开发环境还是为现有项目进行技术栈升级掌握JDK 17的下载、安装与配置都是每一位Java开发者必备的、最基础的“起手式”。接下来我将以一个老开发者的视角带你一步步完成这个看似简单却暗藏细节的过程确保你的环境一次配好后续开发畅通无阻。2. 核心准备下载渠道选择与版本确认在动手下载之前搞清楚“从哪里下”和“下哪个”是避免后续麻烦的关键第一步。现在的JDK分发生态比早年复杂了不少选择不当可能会遇到许可问题或功能缺失。2.1 理解不同的JDK发行版如今除了Oracle官方的JDK还有多个由社区或商业公司维护的发行版它们都遵循Java SE规范但背后的支持策略和额外特性略有不同。对于大多数开发者尤其是个人学习和中小型项目我强烈推荐使用OpenJDK构建的发行版。Oracle JDK这是最“正统”的发行版由Oracle公司提供。自JDK 11之后Oracle调整了许可协议。对于个人学习、开发和测试仍然是免费的。但如果你将Oracle JDK用于生产环境并且需要商业支持或长期更新就可能需要订阅付费服务。因此对于生产部署需要仔细阅读其许可条款。OpenJDK这是Java平台标准版的官方开源参考实现。我们常说的其他发行版大多是基于OpenJDK源码构建的。它的许可证是GPLv2CPE对商业使用非常友好。Adoptium/Temurin由Eclipse基金会旗下的Adoptium工作组维护提供高质量的、经过全面兼容性测试的OpenJDK二进制发行版品牌名称为“Eclipse Temurin”。它提供了多个LTS版本如8, 11, 17, 21的免费构建并且承诺提供长期的安全更新是当前社区最受推崇的选择之一。Amazon Corretto亚马逊提供的免费、多平台、生产就绪的OpenJDK发行版。亚马逊承诺对Corretto提供长期支持并用于其自身的亚马逊云科技服务稳定性和可靠性有保障。Microsoft Build of OpenJDK微软维护的OpenJDK发行版针对Windows和macOS平台进行了优化和增强。注意对于新手和绝大多数应用场景选择Eclipse Temurin或Amazon Corretto的JDK 17版本是最省心、风险最低的方案。它们完全免费提供长期支持且与标准兼容性极佳。本文后续演示将以Eclipse Temurin为例。2.2 确定操作系统与架构这是另一个容易出错的点。请务必确认你的电脑系统是64位还是32位现代电脑几乎都是64位以及芯片架构。Windows通常是x64即AMD64/Intel 64架构。你可以在“设置”-“系统”-“关于”中查看“系统类型”。macOS近年来经历了架构变迁。基于Intel芯片的Mac选择x64版本。基于Apple Silicon芯片的Mac如M1, M2, M3必须选择aarch64版本。虽然有些x64版本可以通过Rosetta 2运行但为了获得最佳性能和兼容性请使用原生aarch64版本。Linux同样需要区分x64和aarch64。可以通过在终端运行uname -m命令来查看。2.3 实操访问官网与下载打开浏览器访问 Eclipse Adoptium 的下载页面。你可以直接搜索 “Eclipse Temurin download” 找到官网或者访问其GitHub Releases页面。在页面上找到版本选择区域。选择JDK 17 (LTS)。选择你的操作系统如 Windows, macOS, Linux和架构如 x64, aarch64。通常你会看到两种包格式.msi (Windows)/.pkg (macOS)安装程序包适合大多数用户能自动处理一些路径设置。.zip (Windows)/.tar.gz (macOS/Linux)压缩归档包需要手动解压和配置更灵活。点击下载链接。为了后续步骤一致我建议Windows用户下载.zip包macOS/Linux用户下载.tar.gz包。这样我们可以统一进行手动配置理解更深。下载完成后你将得到一个类似OpenJDK17U-jdk_x64_windows_hotspot_17.0.10_7.zip的文件。请记下它的保存位置通常是“下载”文件夹。3. 安装流程详解手动配置的艺术使用安装程序.msi/.pkg虽然简单但“黑盒”操作不利于理解环境变量的本质。手动解压配置是开发者应该掌握的基本功它能让你对环境有完全的控制权。3.1 创建专属的Java开发目录我个人的习惯是在非系统盘比如D盘创建一个统一的开发环境目录将所有开发工具JDK, Maven, Git等都放在里面便于管理和备份。Windows在D:\或你喜欢的其他位置下新建文件夹例如D:\DevTools。然后在此文件夹内再建一个Java文件夹。最终路径像这样D:\DevTools\Java。macOS/Linux在用户主目录下创建类似目录例如~/DevTools/Java。可以在终端中执行mkdir -p ~/DevTools/Java。3.2 解压JDK到目标目录Windows找到你下载的.zip文件右键点击并选择“全部解压缩...”。在解压对话框中将目标路径指向你刚创建的D:\DevTools\Java。解压后你会得到一个类似jdk-17.0.107的文件夹。为了路径简洁你可以将其重命名为jdk-17。macOS/Linux打开终端。使用tar命令解压到目标目录tar -xzf ~/Downloads/OpenJDK17U-jdk_x64_mac_hotspot_17.0.10_7.tar.gz -C ~/DevTools/Java/同样可以进入~/DevTools/Java目录将解压出的文件夹重命名为jdk-17cd ~/DevTools/Java mv jdk-17.0.107 jdk-17现在你的JDK 17就安静地躺在D:\DevTools\Java\jdk-17或~/DevTools/Java/jdk-17目录下了。这个路径就是我们接下来要配置的JAVA_HOME。3.3 配置环境变量打通命令行的任督二脉环境变量是操作系统用来指定运行环境参数的一组动态值。配置JAVA_HOME和PATH是为了让系统在任何位置都能识别java和javac等命令。对于Windows用户设置 JAVA_HOME在Windows搜索框输入“环境变量”选择“编辑系统环境变量”。在弹出的“系统属性”窗口中点击右下角的“环境变量”按钮。在“系统变量”区域如果想对所有用户生效或“用户变量”区域仅对当前用户生效点击“新建”。变量名输入JAVA_HOME。变量值输入你的JDK安装目录的绝对路径例如D:\DevTools\Java\jdk-17。点击“确定”。更新 PATH 变量在“系统变量”区域找到名为Path的变量选中并点击“编辑”。在弹出的窗口中点击“新建”然后添加一条新记录%JAVA_HOME%\bin。重要提示%JAVA_HOME%\bin这个写法是关键。它引用了我们上一步设置的JAVA_HOME变量指向其下的bin目录。这样做的好处是将来如果你要升级JDK版本只需要修改JAVA_HOME这一个变量的值PATH会自动生效无需再动。使用“上移”按钮将这条新增的记录移动到靠前的位置虽然不是必须但可以避免系统优先使用其他旧版本的Java。逐一点击“确定”关闭所有窗口。对于macOS/Linux用户我们通过修改 shell 配置文件来设置环境变量。常见的shell有bash和zshmacOS Catalina及以后版本的默认shell。你需要编辑对应当前shell的配置文件。确定你的shell打开终端输入echo $SHELL。如果显示/bin/zsh则编辑~/.zshrc文件如果显示/bin/bash则编辑~/.bash_profile或~/.bashrc对于macOS通常用.bash_profile。编辑配置文件以zsh为例使用文本编辑器如nano或vim打开配置文件nano ~/.zshrc添加环境变量在文件的末尾添加以下两行export JAVA_HOME/Users/你的用户名/DevTools/Java/jdk-17 export PATH$JAVA_HOME/bin:$PATH请将/Users/你的用户名/DevTools/Java/jdk-17替换为你实际的JDK绝对路径。你可以通过将jdk-17文件夹拖入终端窗口来快速获取其路径。$PATH前的$JAVA_HOME/bin:表示将JDK的bin目录添加到现有PATH变量的最前面。保存并生效在nano编辑器中按CtrlX然后按Y确认保存再按Enter确认文件名退出。让配置立即生效执行source ~/.zshrc如果你修改的是.bash_profile则执行source ~/.bash_profile。3.4 验证安装关键时刻的“三部曲”配置完成后必须重新打开一个全新的命令行窗口终端以确保新的环境变量被加载。然后执行以下三个命令进行验证检查 JAVA_HOMEWindows:echo %JAVA_HOME%macOS/Linux:echo $JAVA_HOME预期结果应该正确显示你设置的JDK安装路径如D:\DevTools\Java\jdk-17或/Users/.../jdk-17。检查 Java 运行时版本java -version预期结果应该输出类似以下信息明确显示版本是17.x.x并且发行商是Eclipse Temurin等。openjdk version 17.0.10 2024-01-16 OpenJDK Runtime Environment Temurin-17.0.107 (build 17.0.107) OpenJDK 64-Bit Server VM Temurin-17.0.107 (build 17.0.107, mixed mode, sharing)检查 Java 编译器版本javac -version预期结果应该输出javac 17.x.x。如果以上三步全部通过那么恭喜你JDK 17已经成功安装并配置到你的系统中了如果任何一步出错请返回检查路径是否正确、环境变量是否设置成功、以及是否重启了命令行窗口。4. 集成开发环境配置让工具为你服务配置好系统环境只是第一步我们最终要在IDE里写代码。这里以目前市场占有率最高的两款IDE——IntelliJ IDEA和Eclipse为例说明如何让它们指向我们刚安装的JDK 17。4.1 IntelliJ IDEA 配置IDEA在识别JDK方面非常智能但手动指定一次可以确保万无一失。打开IntelliJ IDEA。对于新建项目在欢迎界面点击“New Project”。在左侧选择“Java”确保“Project SDK”下拉框显示的是No SDK或者一个非JDK 17的版本。点击“Add SDK” - “JDK”。在弹出的文件选择器中导航到你安装JDK 17的根目录即D:\DevTools\Java\jdk-17或~/DevTools/Java/jdk-17选中后点击“OK”。此时“Project SDK”应该显示为你刚添加的JDK 17然后继续创建项目即可。对于已有项目打开项目后点击菜单栏File-Project Structure(快捷键CtrlAltShiftS)。在Project设置中查看Project SDK和Project language level确保它们都是17或对应的版本。在Platform Settings-SDKs下可以查看和管理所有已配置的JDK。确保你的JDK 17在此列表中并且路径正确。4.2 Eclipse 配置Eclipse的配置相对集中在其“首选项”中。打开Eclipse。点击菜单栏Window-Preferences。在左侧导航树中展开Java-Installed JREs。右侧会显示已注册的JRE列表。点击“Add...”按钮。选择“Standard VM”点击“Next”。在“JRE home”字段点击“Directory...”然后导航并选择你的JDK 17安装根目录注意是包含bin,lib,jmods等文件夹的根目录不是bin目录本身。Eclipse会自动填充“JRE name”你可以保留默认或修改一个易记的名字如“JDK-17-Temurin”。点击“Finish”。回到“Installed JREs”页面确保刚添加的JDK 17被勾选为默认可以勾选它然后点击“Apply”。对于具体项目你还可以右键项目 -Properties-Java Build Path-Libraries检查JRE System Library是否指向了正确的JDK 17。实操心得在团队协作中我强烈建议将项目的JDK版本信息通过pom.xml(Maven) 或build.gradle(Gradle) 等构建工具来锁定。这样无论团队成员本地安装的是哪个版本的JDK构建工具都会自动下载并使用项目指定的JDK或工具链能极大避免“在我机器上好好的”这类环境问题。5. 常见问题与深度排查指南即使步骤再详细实际操作中也可能遇到各种“坑”。这里我总结几个最常见的问题及其排查思路。5.1 命令提示“不是内部或外部命令”现象在命令行输入java -version或javac -version后系统提示“不是内部或外部命令也不是可运行的程序或批处理文件”。排查步骤检查路径首先百分百确认你配置的JAVA_HOME路径是否正确无误。一个字符都不能错尤其注意Windows下的盘符和反斜杠。检查PATH在Windows上打开命令行输入echo %PATH%查看输出的内容中是否包含%JAVA_HOME%\bin这个条目或者是否直接包含了JDK的bin目录完整路径。如果没有说明PATH变量设置未生效或设置错误。重启终端这是最容易被忽略的一点修改环境变量后已经打开的旧命令行窗口是不会加载新变量的。必须关闭所有命令行窗口重新打开一个新的。用户变量 vs 系统变量如果你在Windows上只设置了“用户变量”但使用管理员权限打开的命令行它可能不会加载用户变量。可以尝试在“系统变量”中也设置一遍或者确保用普通用户权限打开命令行。5.2 版本号与预期不符现象执行java -version显示的版本不是17而是1.8、11或其他版本。原因与解决这说明你的系统里安装了多个Java版本并且PATH环境变量中旧版本Java的路径排在JDK 17的路径之前操作系统找到了旧版本就停止了搜索。解决方案调整PATH顺序按照前面3.3节所述将%JAVA_HOME%\bin或$JAVA_HOME/bin在PATH变量中的位置上移确保它位于任何其他Java路径之前。使用绝对路径在需要的时候可以直接使用JDK 17的完整命令路径例如D:\DevTools\Java\jdk-17\bin\java -version来强制指定。操作系统特定命令macOS/Linux可以使用which java命令查看当前java命令实际指向的是哪个路径下的可执行文件。这能帮你定位冲突的来源。Windows在命令行输入where java它会列出所有在PATH中找到的java.exe的路径顺序就是查找顺序。5.3 安装程序与手动配置的冲突现象之前通过.msi或.pkg安装过其他版本的Java现在手动配置JDK 17后系统行为混乱。解决思路系统可能会存在多个注册的Java运行时。我们需要清理旧的关联。Windows可以尝试在“控制面板”-“程序和功能”中卸载掉你不想要的旧版本Java Runtime Environment (JRE)。但注意手动解压的JDK不会出现在这里无需担心被误删。macOS旧版Oracle JDK有时会安装到/Library/Java/JavaVirtualMachines/目录下。你可以手动检查这个目录将不再需要的JDK目录移动到废纸篓注意先确认项目依赖。同时使用which java和ls -l /usr/bin/java检查命令链接。5.4 环境变量修改后不生效的终极检查如果以上步骤都检查无误但问题依旧可以做一个“隔离测试”打开命令行直接切换到JDK 17的bin目录下Windows:cd /d D:\DevTools\Java\jdk-17\binmacOS/Linux:cd ~/DevTools/Java/jdk-17/bin在此目录下直接运行.\java -version(Windows) 或./java -version(macOS/Linux)。如果此时能正确显示版本则100%证明是你的JAVA_HOME或PATH环境变量配置有误。如果此时仍报错那可能是下载的JDK包本身损坏或者解压不完整。请重新下载一次压缩包并尝试用其他解压工具如7-Zip进行解压。配置开发环境是程序员的基本功也是一个需要耐心和细心的过程。每一次成功的配置都是对计算机系统如何寻找和运行程序的一次深刻理解。希望这份超详细的指南不仅能帮你把JDK 17顺利装上更能让你明白每一步背后的原理下次再遇到类似问题就能自己从容解决了。