夯实基础:配置Java开发环境JDK与构建工具Maven

摘要:在前面两个章节中,我们一同探讨了Spring Boot的革命性优势,并深入其内部,理解了起步依赖、自动配置和内嵌容器这三大核心基石。理论的铺垫是为了更稳健的实践。从本章开始,我们将正式“卷起袖子”,搭建一套专业、高效的本地开发环境。这是我们编码之旅的起点,也是保证后续所有实战顺利进行的关键。



📚 《Spring Boot 从入门到精通》系列文章导航
拥抱变革:为何Spring Boot是现代Java开发的必然选择
深入核心:理解Spring Boot的三大基石:起步依赖、自动配置与内嵌容器
夯实基础:配置Java开发环境JDK与构建工具Maven
集成开发环境:在IntelliJ IDEA中高效运行与调试Spring Boot


引言:从“知道”到“做到”

我们已经知道了Spring Boot为何如此强大,但要真正驾驭它,首先需要一把“好剑”和一个“锻造台”。在Java世界里,这把“剑”就是JDK(Java Development Kit),而“锻造台”则是以Maven为代表的构建工具。上一章的结尾我们预告过,理论学习告一段落,是时候进入纯粹的动手环节了。本章的核心目标非常明确:配置好JDK与Maven,为后续所有编码实战铺平道路。

一、Java开发工具包 (JDK) 的安装与配置

JDK是整个Java生态系统的基石,它提供了Java程序的编译器(javac)、运行环境(JVM)以及核心类库。没有JDK,一切Java代码都是普通的文本文件。

1.1 选择合适的JDK版本

Spring Boot 3.x 要求 Java 17 或更高版本。因此,我们强烈推荐安装JDK 17,这是一个长期支持(LTS)版本,兼具稳定性和现代化的特性。当然,你也可以选择最新的LTS版本JDK 21。

官方推荐下载地址

  • Eclipse Temurin (Adoptium): https://adoptium.net/ (社区支持的、经过严格测试的OpenJDK发行版,强烈推荐)
  • Oracle JDK: https://www.oracle.com/java/technologies/downloads/ (Oracle官方JDK)

1.2 安装与配置流程

安装JDK的核心步骤是“下载 -> 安装 -> 配置环境变量”。我们可以用一个流程图来清晰地展示这个过程。

访问Adoptium官网
选择JDK 17版本和对应操作系统
下载安装包
运行安装程序
遵循向导完成安装
配置环境变量 JAVA_HOME
将JAVA_HOME/bin添加到PATH
打开新的终端验证安装

1.3 配置环境变量(以Linux/macOS为例)

环境变量的配置是关键一步,它能让操作系统在任何路径下都能找到Java的命令。

  1. 找到JDK安装路径:通常在 /usr/lib/jvm//Library/Java/JavaVirtualMachines/ 目录下。
  2. 编辑配置文件:打开你的shell配置文件,如 ~/.bash_profile, ~/.zshrc (macOS Catalina及以后版本默认使用zsh) 或 ~/.profile
  3. 添加配置:在文件末尾添加以下内容(请将 JAVA_HOME 的值替换为你的实际安装路径)。
# 设置JAVA_HOME,指向你的JDK安装目录
export JAVA_HOME=/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
# 将Java的可执行文件目录添加到系统PATH中
export PATH=$JAVA_HOME/bin:$PATH

1.4 验证安装

配置完成后,务必打开一个新的终端窗口,执行以下命令进行验证:

# 检查Java运行时版本
java -version# 检查Java编译器版本
javac -version

如果你能看到类似 openjdk version "17.x.x" 的输出,并且两个命令都能成功执行,那么恭喜你,JDK已经成功安装!

二、构建工具王者 Maven 的安装与配置

如果说JDK是基础,那么Maven就是我们构建、管理、打包Spring Boot项目的“总工程师”。它能帮我们自动处理上一章提到的“起步依赖”,并执行编译、测试、打包等一系列任务。

2.1 下载与安装

  1. 访问官网: 前往 Maven官方下载页面。
  2. 下载: 下载最新的二进制压缩包(apache-maven-3.x.x-bin.tar.gz.zip)。
  3. 解压: 将压缩包解压到一个你指定的目录,例如 /opt/maven~/tools/maven。这个解压后的目录就是你的 MAVEN_HOME

2.2 配置环境变量与本地仓库

与JDK类似,我们也需要为Maven配置环境变量。同时,配置一个国内的镜像源可以极大地提升依赖下载速度。

  1. 配置环境变量:再次打开你的shell配置文件(如 ~/.zshrc),添加如下配置:
# 设置MAVEN_HOME,指向你的Maven解压目录
export MAVEN_HOME=/opt/apache-maven-3.9.6
# 将Maven的可执行文件目录添加到系统PATH中
export PATH=$MAVEN_HOME/bin:$PATH
  1. 配置镜像源:这是提升开发效率的关键一步。找到Maven的配置文件 conf/settings.xml,在 <mirrors> 标签内添加阿里云的镜像配置。
<!-- file: MAVEN_HOME/conf/settings.xml -->
<mirrors><!-- 阿里云镜像 --><mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>Alibaba Cloud Maven Mirror</name><url>https://maven.aliyun.com/repository/public</url></mirror>
</mirrors>

2.3 验证安装

同样,打开一个新的终端窗口,执行以下命令:

# 检查Maven版本
mvn -v

如果你能看到Maven的版本信息、Java版本以及你的MAVEN_HOME路径,说明Maven也已准备就绪。

总结

“工欲善其事,必先利其器”。今天,我们花了整整一章的篇幅来打磨我们的开发工具,这绝不是浪费时间。我们完成了两件至关重要的事:

  • 安装并配置了JDK 17:为我们的Spring Boot应用提供了坚实的运行环境。
  • 安装并配置了Maven:获得了强大的项目构建与依赖管理能力,并配置了国内镜像以提高效率。

现在,你的开发环境已经“整装待发”,完全具备了开发现代化Spring Boot应用的能力。

预告:万事俱备只欠东风!既然我们的环境已经搭建完毕,下一章,我们将正式开始创建第一个属于自己的项目。我们将学习如何使用官方推荐的**创建项目:使用Spring Initializr初始化你的第一个应用程序**,从零到一构建起一个标准的Spring Boot应用骨架。敬请期待!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/90039.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/90039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyCharm 未正确关联 .jpg 为图片格式

1. PyCharm 未正确关联 .jpg 为图片格式PyCharm 可能错误地将 .jpg 文件识别为文本文件&#xff0c;导致无法预览图片。解决方法手动关联 .jpg 为图片格式&#xff1a;Windows/Linux: File → SettingsmacOS: PyCharm → Preferences进入 Editor → File Types。在 Recognized …

DM8数据库Docker镜像部署最佳实践

DM8数据库Docker镜像部署最佳实践一、Docker加载DM8镜像二、Docker创建DM8容器三、验证目录是否挂载成功一、Docker加载DM8镜像 1.下载DM8镜像&#xff0c;由于官网暂未提供docker镜像下载&#xff0c;可通过网盘下载&#xff1a;https://pan.quark.cn/s/fe38ba821a2a 2.打开…

数据结构——树(2)

数据结构基础&#xff08;12&#xff09; 文章目录数据结构基础&#xff08;12&#xff09;二叉树的先序遍历先序遍历中序遍历后序遍历二叉树的层序遍历由遍历序列构造二叉树前序 中序遍历序列后序 中序遍历序列层序 中序遍历序列二叉树的中序遍历&#xff08;缺点&#xff…

【C语言进阶】结构体练习:通讯录

要求&#xff1a; 实现一个通讯录。 (1)人的信息&#xff1a; 包括姓名、年龄、性别、电话地址。 (2)功能&#xff1a; ①存放一百个人的信息。 ②增加联系人。 ③删除指定联系人。 ④查找指定联系人。 ⑤修改联系人。 ⑥排序。 ⑦显示联系人。 (3)文件&#xff1a; ①contact.…

缓存三剑客解决方案

缓存三剑客解决方案 1.缓存雪崩 定义&#xff1a; 大量缓存数据在同一时间点集体失效&#xff0c;导致所有请求直接穿透到数据库&#xff0c;引发数据库瞬时高负载甚至崩溃。 解决方案&#xff1a; 设置过期随机值&#xff0c;避免大量缓存同时失效。 // 缓存雪崩防护&#xff…

HTML 页面禁止缩放功能

页面禁止缩放 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width, initial-scale1, shrink-to-fitno, maximum-scale1.0, us…

在github上搭建自己主页

主要是这篇博客进行一些补充。 第一步照做就行 首先是第二步 克隆仓库到本地 先下载一个git&#xff0c;电脑创建一个新文件夹&#xff0c;然后 git clone xxxxx 注意即使你使用了代理&#xff0c;这里大概率也会报错&#xff0c;Failed to connect to github.com port 443 …

Laravel 框架NOAUTH Authentication required 错误解决方案-优雅草卓伊凡

Laravel 框架NOAUTH Authentication required 错误解决方案-优雅草卓伊凡NOAUTH Authentication required 错误这个错误通常出现在以下几种情况&#xff1a;Redis 认证问题&#xff1a;如果你的应用使用了 Redis 且配置了密码API 认证问题&#xff1a;请求需要认证的 API 端点但…

kafka生产端和消费端的僵尸实例以及解决办法

目录 一 生产端僵尸 1.1 原因 1.2 问题 1.3解决办法 1.4 案例 1.4.1 案例1&#xff1a;生产者崩溃后重启 (同一 transactional.id) 1.4.2 案例2&#xff1a;短暂网络分区导致的脑裂 1.4.3 案例3&#xff1a;正确 - 解决僵尸 1.4.4 案例4&#xff1a;错误 - 无法解决僵…

国产电科金仓数据库金仓KES V9 2025:AI时代的数据库融合标杆

国产电科金仓数据库金仓KES V9 2025&#xff1a;AI时代的数据库融合标杆 在AI技术迅猛发展的今天&#xff0c;企业数据管理面临着前所未有的挑战&#xff1a;异构数据库兼容难题、多数据模型融合需求、高并发场景性能瓶颈、跨中心容灾压力……这些痛点如同数据流转的大问题&am…

【STM32】关于STM32F407写Flash失败问题的解决办法

问题描述 在使用正点原子的STM32F407写flash例程时&#xff0c;发现STMFLASH_Write函数没办法写入数据到flash&#xff0c;原始代码输入下&#xff1a; 随后对每一行代码的结果进行分析&#xff0c;发现87行的“FLASH_ProgramWord(WriteAddr,*pBuffer)”返回值是7&#xff0c;一…

CUDA与RISC-V的融合:打破架构霸权,重塑AI计算未来

当x86和Arm统治数据中心十余年后,一家GPU巨头正悄悄将十亿颗RISC-V核心嵌入其系统。如今,它决定拆除CPU架构的围墙。 2025年7月,上海张江科学会堂。英伟达硬件工程副总裁Frans Sijstermanns在第五届RISC-V中国峰会上宣布:英伟达正式启动CUDA向RISC-V架构的移植工作。 这个…

微信二维码扫描登录流程详解

二维码扫描登录流程细节&#xff08;项目经验&#xff09; 1&#xff1a; 获取二维码信息 PC会优先存放服务器生成的唯一密钥&#xff1a; 比如 source、secret 以密文形式存储大致发送字段&#xff1a; sourcesecretmac(mac 地址) 服务器生成 二维码信息&#xff1a;二维码字符…

日本上市IT企业|8月125日将在大连举办赴日it招聘会

株式会社GSD的核心战略伙伴贝斯株式会社&#xff0c;将于2025年8月25日在大连香格里拉大酒店商务会议室隆重举办赴日技术人才专场招聘会。本次招聘会面向全国范围内的优秀IT人才&#xff0c;旨在为贝斯株式会社东京本社长期发展招募优质的系统开发与管理人才。招聘计划&#xf…

Python 数据分析与可视化:从基础到进阶的技术实现与优化策略

数据分析与可视化是数据科学领域的核心技能,Python 凭借其丰富的库生态和灵活的编程范式,成为该领域的首选工具。本文将系统讲解 Python 数据分析与可视化的技术栈实现,从基础操作到性能优化,结合实战场景提供可复用的解决方案。 数据分析核心库技术解析 Pandas 数据处理…

Rust Web 全栈开发(十):编写服务器端 Web 应用

Rust Web 全栈开发&#xff08;十&#xff09;&#xff1a;编写服务器端 Web 应用Rust Web 全栈开发&#xff08;十&#xff09;&#xff1a;编写服务器端 Web 应用创建成员库&#xff1a;webappmodelshandlersrouterserrorsmodsvrstaticteachers.htmlregister.htmlbootstrap.m…

每日面试题11:JVM

深入理解JVM&#xff1a;Java的“心脏”如何驱动程序运行&#xff1f;为什么需要JVM&#xff1f;你是否想过&#xff0c;为什么用Java写的程序&#xff0c;能在Windows、Linux、macOS上“无缝运行”&#xff1f;为什么开发者无需为不同操作系统重写代码&#xff1f;这背后的核心…

Linux网络信息(含ssh服务和rsync)

73.telnet&#xff1a;测试端口连通性用法&#xff1a;telnet 主机名或IP 端口号测试目标主机的指定端口是否开放&#xff0c;检查网络服务连通性。eg&#xff1a;telnet www.baidu.com 80# 说明&#xff1a;# - 如果连接成功&#xff0c;显示 "Connected to ..."。…

【PTA数据结构 | C语言版】我爱背单词

本专栏持续输出数据结构题目集&#xff0c;欢迎订阅。 文章目录题目代码题目 作为一个勤奋的学生&#xff0c;你在阅读一段英文文章时&#xff0c;是否希望有个程序能自动帮你把没有背过的生词列出来&#xff1f;本题就请你实现这个程序。 输入格式&#xff1a; 输入第 1 行给…

如何使用电脑连接小米耳机(红米 redmi耳机)

如何使用电脑连接小米&#xff08;红米 redmi&#xff09;耳机Redmi耳机连接电脑的具体步骤如下注意事项和常见问题解决方法&#xff1a;Redmi耳机连接电脑的具体步骤如下 打开耳机仓盖&#xff1a; 首先&#xff0c;打开Redmi耳机的充电仓盖&#xff0c;但不需要取出耳机。进…