尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

JDK 17安装与环境配置全指南:从零搭建Java开发环境

JDK 17安装与环境配置全指南:从零搭建Java开发环境 1. 项目缘起为什么今天还要手把手教JDK 17安装如果你点开这篇文章大概率是刚接触Java开发或者需要为一个新项目、一台新电脑搭建环境。你可能会想JDK安装不是老生常谈吗网上教程一搜一大把为什么还需要一个“最详细”的教程这正是我写这篇文章的初衷。我见过太多新手甚至是工作一两年的朋友在环境配置上栽跟头。他们照着网上三五年前的教程下载了过时的JDK版本环境变量配得乱七八糟最后java -version命令一敲要么报“不是内部或外部命令”要么版本对不上折腾半天一头雾水学习热情被瞬间浇灭。更麻烦的是有些教程步骤跳跃只告诉你怎么做不告诉你为什么一旦出了问题你连排查的方向都没有。所以这篇教程的目标很明确面向所有基础尤其是零基础的开发者提供一个从零开始、知其然更知其所以然的JDK 17安装与配置指南。我会把每个步骤背后的逻辑讲清楚把可能遇到的坑提前标出来确保你一次成功。我们选择的JDK 17是Oracle在2021年发布的长期支持版本它引入了很多现代语言特性是目前企业级应用和Spring Boot 3.x的基准版本学习它正当时。2. 核心概念扫盲JDK、JRE、JVM到底是什么在动手之前我们必须先理清几个核心概念。很多教程直接让你下载安装但如果你连自己装的是什么都不知道后续出问题肯定会懵。### 2.1 三者的关系与分工你可以把Java程序的运行想象成做一道菜Java程序JDKJava Development Kit它是什么Java开发工具包。它是厨师的整个工具箱。包含什么里面不仅有做菜编译和运行的工具还有准备食材开发的工具。具体包括JRE、编译器javac、调试器jdb、文档生成器javadoc、打包工具jar等。谁需要它开发者。只要你要写Java代码就必须安装JDK。JREJava Runtime Environment它是什么Java运行时环境。它是厨房和基础厨具。包含什么主要是JVM和Java核心类库。它提供了运行已编译好的Java程序.class文件所需的一切但没有编译器等开发工具。谁需要它只想运行Java程序的用户。比如你电脑上要运行一个用Java写的桌面软件或Minecraft游戏装JRE就够了。JVMJava Virtual Machine它是什么Java虚拟机。它是灶台和锅是真正“烹饪”执行代码的地方。做什么负责加载字节码.class文件进行解释或即时编译并管理内存垃圾回收。特点它是JRE的核心部分实现了Java“一次编写到处运行”的跨平台特性。不同操作系统Windows, Linux, macOS有对应的JVM实现。简单总结JDK JRE 开发工具JRE JVM 核心类库。作为开发者我们直接安装JDK即可它已经包含了运行所需的一切。### 2.2 为什么选择JDK 17版本与发行商的选择打开Oracle官网你会发现JDK版本眼花缭乱8, 11, 17, 21, 23... 该选哪个LTS的重要性Oracle大约每半年发布一个功能版本但只有特定的版本被标记为LTS。LTS版本会获得长达数年的官方支持和更新包括安全补丁而非LTS版本的支持周期很短通常只有6个月。对于学习和生产环境强烈建议选择LTS版本。目前主流的LTS版本是JDK 11, JDK 17和最新的JDK 21。JDK 8虽然经典但已逐步退役。选择JDK 17的理由长期支持它是继JDK 11之后又一个重要的LTS版本支持到2029年足够稳定和持久。现代特性它引入了很多提升开发效率的特性如switch表达式、文本块、Records等写起代码来更简洁。生态趋势Spring Boot 3.x、Jakarta EE 10等主流框架已要求最低JDK 17。学习它意味着与当前技术栈接轨。发行商选择除了Oracle官方的Oracle JDK还有OpenJDK、Adoptium原AdoptOpenJDK、Amazon Corretto、Azul Zulu等。它们都基于开源的OpenJDK项目构建在功能上基本一致主要区别在于许可协议、额外的工具和长期支持策略。对于个人学习和一般商业用途我推荐使用Adoptium的Eclipse Temurin JDK因为它完全免费、开源且提供高质量的LTS版本构建。本教程也将以它为例。3. 实战第一步下载与安装JDK 17理论清楚了我们开始动手。这里以Windows系统为例macOS和Linux用户思路完全一致只是安装包和路径不同。### 3.1 获取正确的安装包访问下载站点打开浏览器访问Eclipse Adoptium的下载页面https://adoptium.net/zh-CN/temurin/releases/。这是目前最受社区欢迎的免费JDK发行版之一。选择版本与系统在版本列表中找到JDK 17 (LTS)。在“操作系统”下拉菜单中选择你的系统例如Windows。在“架构”中根据你的电脑选择。绝大多数现代电脑是64位的选择x64。如果你的电脑比较旧可能是x86。“包类型”选择JDK。“镜像”保持默认即可。“JVM实现”选择HotSpot这是最经典、应用最广的JVM。点击下载页面会自动筛选出符合条件的安装包通常是一个.msi安装程序Windows或.pkg安装程序macOS。点击绿色的下载按钮。注意尽量避免从不明来源的第三方网站下载JDK以防捆绑恶意软件或版本被篡改。Adoptium、Oracle官网、Azul等是可信来源。### 3.2 执行安装程序下载完成后双击运行.msi安装文件。启动安装向导点击“Next”。选择安装组件通常保持默认全选即可包括“Java SE Development Kit”和“公共JRE”。这里安装的“公共JRE”是一个独立的JRE环境可供系统其他程序使用不影响我们的JDK开发环境。更改安装路径关键步骤强烈建议更改默认安装路径默认路径通常是C:\Program Files\Java\jdk-17.x.x.x这个路径包含空格和版本号在某些极端情况下如古老脚本或配置可能引发问题。点击“Change...”我个人的习惯是安装到一个简单、无空格、无中文的路径例如D:\DevTools\Java\jdk-17。这样在后续配置环境变量时会更清晰、更安全。记住这个路径稍后配置环境变量需要用到。我们把这个路径称为JAVA_HOME。完成安装继续点击“Next”等待安装进度条走完最后点击“Close”完成安装。安装完成后你可以在你指定的路径如D:\DevTools\Java\jdk-17下看到JDK的目录结构里面包含bin工具命令、lib类库、jre运行时等文件夹。4. 环境变量配置让系统认识你的Java安装只是把“工具箱”放到了电脑的某个角落但系统还不知道怎么找到它。环境变量就是告诉系统“嘿我的Java工具放在这里了” 这是新手最容易出错的一步。### 4.1 理解三个关键环境变量我们需要配置两个系统环境变量JAVA_HOME和Path。JAVA_HOME作用指向JDK的根目录。它是一个“基石”变量很多Java开发工具如Maven、Gradle、Tomcat、IDE都依赖这个变量来定位JDK的位置。值就是你安装JDK的路径例如D:\DevTools\Java\jdk-17。注意路径不要包含bin目录Path作用系统会在Path变量所列出的所有目录中查找你输入的命令的可执行文件。我们需要把JDK的bin目录加入Path这样在命令行CMD、PowerShell的任何位置你输入java、javac等命令系统都能找到并执行。值我们需要添加一个新条目%JAVA_HOME%\bin。这里的%JAVA_HOME%是一个引用它会动态地取JAVA_HOME变量的值。这样做的好处是如果你将来升级JDK只需要修改JAVA_HOME这一个地方Path会自动生效。### 4.2 Windows 10/11 详细配置步骤打开环境变量设置在Windows搜索框输入“环境变量”选择“编辑系统环境变量”。在弹出的“系统属性”窗口中点击右下角的“环境变量(N)...”按钮。新建JAVA_HOME系统变量在下面的“系统变量”区域点击“新建...”。变量名输入JAVA_HOME变量值输入你的JDK安装路径例如D:\DevTools\Java\jdk-17点击“确定”。编辑Path变量在“系统变量”区域找到并选中Path变量点击“编辑...”。在打开的编辑窗口中点击“新建”。输入新条目%JAVA_HOME%\bin重要为了确保优先级最好将这个新条目通过“上移”按钮移动到列表的顶部附近。这样可以防止系统优先使用其他位置可能存在的旧版本Java。逐一点击“确定”关闭所有窗口。验证安装最关键的一步按下Win R输入cmd或powershell打开命令行窗口。输入命令java -version预期输出应该显示类似openjdk version 17.0.xx ...的信息并且版本号是17。输入命令javac -version预期输出应该显示javac 17.0.xx。如果两个命令都正确显示了版本号并且是17那么恭喜你JDK安装和环境变量配置完全成功### 4.3 常见问题与排错如果命令执行失败通常有以下几种情况及解决方法‘java’ 不是内部或外部命令...原因Path变量配置错误系统找不到java.exe。排查在命令行输入echo %JAVA_HOME%检查输出的路径是否正确是否指向了JDK根目录不含bin。输入echo %Path%检查输出的路径列表中是否包含%JAVA_HOME%\bin或你直接写的完整bin路径。如果JAVA_HOME为空或错误回到步骤2重新创建。如果Path中没有正确条目回到步骤3重新添加。注意修改环境变量后必须重新打开一个新的命令行窗口因为已有的窗口不会加载新的环境变量。‘javac’ 不是内部或外部命令但 ‘java’ 命令可用原因你可能只安装了JRE或者安装的JDK不完整某些精简版或者Path指向了JDK目录下的jre\bin而不是JDK根目录\bin。javac编译器只在JDK的bin目录下。解决确保你安装的是完整的JDK并且JAVA_HOME指向的是JDK根目录Path中添加的是%JAVA_HOME%\bin。版本号不对原因系统中存在多个Java版本Path中旧版本的路径在新版本之前导致系统优先使用了旧版本。解决在Path变量中将%JAVA_HOME%\bin条目上移到更靠前的位置。或者检查并清理系统/用户环境变量中其他指向旧Java的路径。5. 进阶配置与IDE集成基础环境搭好了但作为开发者我们几乎不会直接在命令行里写代码。集成开发环境是我们的主战场。这里以最流行的 IntelliJ IDEA 为例讲解如何让IDE使用我们刚装好的JDK。### 5.1 在IntelliJ IDEA中配置JDK打开或创建项目启动IntelliJ IDEA。配置项目SDK对于新项目在创建项目的向导中在“Project SDK”下拉框处点击“New...” - “JDK”。对于已有项目点击File-Project Structure...(快捷键CtrlShiftAltS)。在Project设置中找到Project SDK同样点击“New...” - “JDK”。选择JDK安装目录在弹出的文件选择器中导航到你安装JDK的根目录即JAVA_HOME的路径如D:\DevTools\Java\jdk-17选中后点击“OK”。验证此时在IDEA中Project SDK应该显示为你刚添加的JDK 17。你可以在IDEA内置的终端里再次输入java -version和javac -version进行验证。### 5.2 为什么IDE还需要单独配置你可能会疑惑系统环境变量不是配好了吗为什么IDE还要再配一次灵活性一个IDE可能同时管理多个项目每个项目可能要求使用不同版本的JDK如老项目用JDK 8新项目用JDK 17。项目级别的SDK配置提供了这种灵活性。独立性IDE的配置优先于系统环境变量。即使系统Path指向了JDK 8你也可以在IDEA中为当前项目指定使用JDK 17互不干扰。可靠性直接指定绝对路径避免了因系统环境变量被意外修改而导致项目构建失败的风险。### 5.3 配置Maven使用指定JDK如果你使用Maven进行项目构建也需要确保它使用了正确的JDK。检查Maven默认JDK在命令行输入mvn -v。输出的第一行会显示Maven运行时使用的Java版本。如果这里显示的不是JDK 17就需要配置。配置环境变量JAVA_HOME是的还是它Maven启动时会读取系统的JAVA_HOME环境变量来决定使用哪个JDK。所以我们之前正确配置的JAVA_HOME在这里就起作用了。Maven配置文件在极少数情况下你可能需要在Maven的配置文件%MAVEN_HOME%\conf\settings.xml中通过profiles标签来指定JDK版本但这通常不是必须的只要系统JAVA_HOME正确即可。6. 验证与第一个Java程序理论、安装、配置都完成了是时候用一个小程序来检验我们的劳动成果了。我们将完全使用命令行来完成这能让你最直接地理解Java从源码到运行的全过程。### 6.1 编写你的第一个Java文件在任意位置例如桌面新建一个文件夹命名为HelloWorld。进入该文件夹新建一个文本文件将其重命名为HelloJava.java。注意确保文件扩展名是.java而不是.java.txt。如果系统隐藏了已知文件扩展名你需要先在文件夹选项中取消隐藏。用记事本或其他文本编辑器推荐VSCode、Notepad打开HelloJava.java输入以下代码public class HelloJava { public static void main(String[] args) { System.out.println(你好JDK 17环境配置成功); } }代码解释public class HelloJava定义了一个公共类类名必须与文件名HelloJava完全一致区分大小写。public static void main(String[] args)这是Java程序的入口方法JVM从这里开始执行。System.out.println(...)向控制台输出一行文本。### 6.2 编译与运行打开命令行在HelloWorld文件夹的地址栏中直接输入cmd然后回车这样命令行会直接定位到当前文件夹。编译在命令行中输入javac HelloJava.java并回车。作用javac是JDK中的编译器它会将人类可读的.java源代码文件编译成JVM可执行的.class字节码文件。成功标志如果没有任何输出没有错误信息并且文件夹里生成了一个名为HelloJava.class的新文件说明编译成功。运行在命令行中输入java HelloJava并回车。作用java命令启动JVM并告诉它去执行HelloJava这个类中的main方法。成功标志控制台会打印出你好JDK 17环境配置成功。看到这行输出你的JDK 17开发环境就100%准备就绪了你已经成功走完了编写、编译、运行一个Java程序的全流程。7. 环境管理思考多版本JDK共存怎么办在实际开发中你很可能需要同时维护多个不同JDK版本的项目。如何优雅地管理多个JDK版本避免混乱### 7.1 不推荐的做法频繁修改JAVA_HOME手动去系统环境变量里改JAVA_HOME的值是最笨拙、最容易出错的方法。每次切换都要改改完还要重启终端效率极低。### 7.2 推荐方案使用版本管理工具对于Windows用户我强烈推荐使用SDKMAN!或Jabba。这里以SDKMAN!为例它同样支持macOS和Linux。安装SDKMAN!打开一个PowerShell管理员身份执行以下命令Set-ExecutionPolicy RemoteSigned -Scope CurrentUser iwr -useb get.sdkman.io | iex安装完成后重新打开一个PowerShell窗口。使用SDKMAN!管理JDK列出所有可安装的JDK版本sdk list java安装指定版本的JDK如Adoptium的17.0.10版本sdk install java 17.0.10-tem查看已安装的版本sdk current java切换当前终端使用的JDK版本sdk use java 17.0.10-tem设置某个版本为全局默认sdk default java 17.0.10-temSDKMAN! 会自动帮你下载、安装、配置环境变量。你可以在不同的终端窗口或项目中使用sdk use命令快速切换JDK版本互不干扰。这是管理多版本环境的最佳实践。### 7.3 IDE层面的管理正如前面提到的像IntelliJ IDEA这样的IDE可以在File-Project Structure中为每个项目单独指定SDK。这是项目级别最干净的隔离方式。你可以同时打开一个JDK 8的项目和一个JDK 17的项目它们各自使用自己的JDK相安无事。8. 从安装到实战下一步该做什么环境搭好了“Hello World”也跑通了接下来才是真正的开始。这里给你几条清晰的进阶路径### 8.1 巩固基础不要急于学习框架。花时间扎实掌握Java核心语法数据类型、流程控制、面向对象类、对象、继承、多态、接口、异常处理、集合框架、I/O流。推荐阅读《Java核心技术 卷I》或《On Java》等经典书籍。### 8.2 掌握构建工具现代Java项目几乎离不开构建工具。Maven和Gradle是绝对的主流。Maven基于XML配置约定大于配置生态庞大稳定。学习它的项目结构pom.xml、依赖管理、生命周期。Gradle基于Groovy/Kotlin DSL配置灵活构建速度快尤其是Android和Spring Boot新项目的首选。 建议从Maven开始理解依赖管理和构建流程的概念之后再接触Gradle。### 8.3 深入集成开发环境把你用的IDE无论是IDEA还是Eclipse玩熟练。学习快捷键、代码模板、调试技巧、重构功能、版本控制集成。熟练使用IDE能极大提升编码效率。### 8.4 理解模块化JDK 9如果你学的是JDK 17可以开始了解Java模块化。这是Java 9引入的一个重要特性它通过module-info.java文件来定义模块的边界和依赖有助于构建更清晰、更安全的大型应用。虽然入门时可能用不到但知道它的存在是好的。配置环境只是万里长征的第一步但也是最容易让人沮丧的一步。希望这篇超详细的指南帮你稳稳地迈出了这一步。记住遇到问题多查、多试、多理解原理而不是死记硬背步骤。编程路上一个稳定、可控的开发环境是你最可靠的伙伴。
返回列表