一、基本概括
由于jdk的稳定版本是常见的jdk8版本,但是新推出的SpringBoot3需要jdk17支持,而且相对老版的springboot,springboot有很多优势:
1. Java 17基线和对Java 19的支持:确保了与最新Java版本的兼容性,利用最先进的语言特性来提高开发效率和应用性能。
2. 整合了Spring框架6和Jakarta EE 9:这提供了最新的框架支持,以及对现代Java企业开发的全面支持。
3. 对GraalVM原生镜像的支持:这项支持使得创建云原生应用更加高效,可以生成更小和更快的原生镜像,从而提高了应用的启动时间和性能。
4. 增强了对响应式编程的支持:Spring Boot 3完全支持响应式编程模型,使得构建响应式和可伸缩的应用变得更加容易。
5. Log4j2的增强:改进了日志功能,更好地支持现代化日志管理。
6. 改进的可观测性:借助Micrometer和Micrometer跟踪,开发者现在可以记录多种应用指标,更好地监控和调试应用。
springboot3更多信息:
What are the Spring Boot 3 New Features?
Spring Boot 3 and Spring Framework 6.0 – What’s New | Baeldung
New Features In Spring Boot 3 And Spring 6 - JavaTechOnline
目前jdk情况分析如下
JDK版本 | 类型 | 发布日期 | 强调 | 推荐 |
长期支持 | 03/2014 | 拉姆达斯 | 先前发布模型下的最后一个 LTS 版本。Oracle 的免费更新 ,但仍由其他人维护。在接下来的几个月内升级到 11 或 17! | |
特征 | 09/2017 | 模块 | 引入了新的发布模型。停产。现在升级到 11 或 17! | |
特征 | 03/2018 | 变量 | 停产。现在升级到 11 或 17! | |
长期支持 | 09/2018 | 新的 HTTP 客户端 | 广泛使用的 LTS 版本。计划在未来几个月内升级到版本 17。 | |
特征 | 03/2019 | 停产。现在升级到17! | ||
特征 | 09/2019 | 停产。现在升级到17! | ||
特征 | 03/2020 | 切换表达式 | 停产。现在升级到17! | |
特征 | 09/2020 | 文本块 | 停产。现在升级到17! | |
特征 | 03/2021 | 记录 | 停产。现在升级到17! | |
长期支持 | 09/2021 | 密封类 | 当前的 LTS 版本。 | |
特征 | 03/2022 | 坚持17!这是一个没有重要功能的短期版本。 -Dfile.encoding=UTF-8 您可能想通过在当前的 JDK 中进行设置来检查是否遇到“默认 UTF-8”的任何问题。 | ||
特征 | 09/2022 | 仅预览和孵化器功能 | 坚持17!如果之前升级到 18,现在升级到 20。 | |
特征 | 03/2023 | 仅预览和孵化器功能 | 坚持17!如果之前升级到 19,现在升级到 20。 |
二、jdk安装操作:
(一)、jdk8和17安装
1、卸载JDK应用程序
不能单纯打开应用卸载或者删除目标文件夹,删除不彻底的,后期容易出问题。
1. 安全风险: 保留系统上的旧版Java可能会构成严重的安全风险。移除旧版Java可以确保Java应用程序能够在系统上运行,并拥有最新的安全性和性能优化。
2. 环境变量冲突: 如果操作系统的环境变量(如PATH)未正确配置,可能会导致系统调用错误的Java版本,这可能导致兼容性问题或其他未预见的错误。
3. 磁盘空间: 旧版和新版JDK同时存在会占用更多的磁盘空间。
4. 版本管理:对于进行开发的用户而言,可能需要根据不同的项目要求切换不同版本的JDK,如果不维护好各个版本的JDK环境,管理起来可能会变得复杂。
5. 自动卸载: 特别指出的是,Oracle的最新JDK安装程序从JDK 11和JDK 17开始,会自动移除旧版本的JDK。如果用户没有预见到这一点,可能会损失掉他们原本想要保留的旧版本。
综上所述,最好根据个人需求和安全考虑,在安装新版本JDK前卸载旧版本。如果需要保留旧版本用于特定目的,则需确保合理配置和管理不同版本的JDK环境,以及实时更新保持软件安全。
这里借鉴大佬最小白操作:
老版本卸载。
先检查是否存在jdk,不然容易出错。
win+R调出命令行:
java -version
如果没有则进行下载,如果有老版本建议卸载,再进行安装。
卸载方法:
1.1、删除jdk程序
①在开始处,点击设置
②点击应用
③点击程序和功能
④打开程序与功能,我们会发现有两个Java文件,我们右键卸载它(无先后顺序,先卸载第一个或者第二个均可以)
⑤笔者在此先卸载第一个,点击是
⑥之后卸载第二个,点击是
1.2、删除JDK环境变量
卸载完成后我们将环境变量也一并删除
①打开控制面板,搜索高级,找到并选择高级系统设置
点击环境变量
⑤选中我们配置的JAVA_HOME环境变量,之后点击删除
⑥点击Path---->删除掉我们所设置JDK8环境变量
⑦删除掉之后如下图所示,之后点击确定
⑧点击确定
⑨点击确定
1.3、验证Java是否卸载成功
①打开cmd(或Windows+R键打开运行窗口,输入cmd)
②输入命令:javac
javac
输入命令:java
java
输入命令:java -version
java -version
显示java不是内部或外部命令 也不是可运行的程序就表示已经成功删除了,如下图所示:
OK!JDK8卸载成功!
若全部都提示不是内部指令,卸载干净。
(二)、下载jdk
——jdk8、17官网下载地址:(一般不推荐官网下载,一是需要网络环境支持,二是下载缓慢)
——百度网盘:
jdk17
链接:百度网盘 请输入提取码
提取码:8888
jdk8
链接:https://pan.baidu.com/s/1O-gO0uzx94apsZQMABYsig?pwd=8888
提取码:8888
——国内镜像网站:
1、编程宝库 java jdk镜像
2、清华AdoptOpenJDK镜像Index of /Adoptium/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
3、华为java-jdk镜像
Index of java-local/jdk
打开官网网址选择如下:
spring3只支持jdk17对应jdk3版本,如果要jdk1.8.0和jdk17切换使用则需要配置环境变量引用。
1、jdk1.8.0和jdk17更换需要同时下载jdk1.8.0和jdk17
2、先下载好jdk1.8.0和jdk17,再一同配置环境变量
3、然后解压到创建好的文件下下面zip中为安装软件存放位置,如下:
4、在D盘创建Java文件夹存放两个jdk
jdk1,8下再创建两个文件夹,存放jdk和jre,zip是用来存放jdk安装程序,等会在安装时候jre需要空白文件,安装jre1.8,修改jre的安装路径,建议放在jdk同级目录
jdk17合并了jdk和jre所以一个文件夹即可
下载完成后如下图:
然后点击运行下载好的软件
jdk8为例:
双击下载好的jdk安装包,点击下一步:
更换安装位置:为其他盘,随后下一步
确保安装位置更换成功之后下一步
注意:存放的文件夹要为空!
当jdk跑完安装之后,会跳出jre安装界面,记得更换位置再下一步,目标文件夹必须空
选择之前创建的目标文件夹jre
更换安装位置,点击下一步
这一步基本完成,点击关闭即可。
jdk17安装如下:
更换安装位置,再点击下一步
更换后点击确定
确保安装位置为之前创建的空文件夹。再点击下一步
jdk17不涉及到jre的安装选择,直接关闭即可。
如果现在去命令行测试安装情况来看,系统无法识别到所属位置,必须配置环境变量才行。
然后配置环境变量:
控制面板搜索框搜索高级即可看到环境变量
在系统变量中新建变量名
环境变量值是你对于的安装位置绝对路径,看清楚不然会出错。
变量名:JAVA_HOME8
变量值:D:\Java\java1.8.0\jdk1.8.0 //变量值就是jdk8的安装路径,此处为
变量名:JAVA_HOME17 //同样的
新建变量名
变量名:JAVA_HOME17
变量值:D:\Java\java17\jdk17 //变量值就是jdk17的bin安装路径(你自己的安装路径)
做一部分解释:
- jdk8在安装的时候需要安装两个东西:jdk和jre。前面我们也说了jdk8中包括jre目录,其实这个jdk8自带的jre和我们单独安装的jre基本上一样。你们可以分别打开这两个jre看看,里面包含的文件基本上一样。
JAVA_HOME //最后新建变量名 %JAVA_HOME(8或17)% //它的变量值为: %你要选择那个选择
JAVA_HOME //最后新建变量名
%JAVA_HOME(8或17)% //它的变量值为: %你要选择那个选择
(% %这两个百分号代表引用)。
还需创建如下变量:
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\lib\tools.jar
整体如下:
找到Path双击进入进行下步操作
将两个变量新建,并移动到上面
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
- 在安装jdk17和jdk8的时候,会自动在"Path"中配置路径"C:\Program Files\Common Files\Oracle\Java\javapath"或"C:\Program Files (x86)\Common Files\Oracle\Java\javapath"。由于该路径下提供的工具不完整,建议将其删除,然后按照上面的步骤手动配置"bin"的路径。(也就是说自动配置的路径"C:\Program Files\Common Files\Oracle\Java\javapath"或"C:\Program Files (x86)\Common Files\Oracle\Java\javapath"可以删除,不会影响环境变量的配置,建议将其删除
完成之后如下图:
之后一直确认到界面关闭,不能之间×了,配置是不会保存的。
三、检测JDK78是否安装成功
打开DOS窗口,直接输入:java -version 看看是不是出现以下信息,如果出现以下信息即表示安装成功:要切换jdk17在环境变量里面更改后便可。
至此jdk配置完成:
如果要更换jdk17同如下操作即可:
更改为
%JAVA_HOME17%
一直确认保存即可
再回到命令行测试更改结果:
如果在之前的命令行测试会显示1.8.0版本,重新打开一个新的界面测试:
四 注意事项
- 在安装jdk17和jdk8的时候,会自动在"Path"中配置路径"C:\Program Files\Common Files\Oracle\Java\javapath"或"C:\Program Files (x86)\Common Files\Oracle\Java\javapath"。由于该路径下提供的工具不完整,建议将其删除,然后按照上面的步骤手动配置"bin"的路径。(也就是说自动配置的路径"C:\Program Files\Common Files\Oracle\Java\javapath"或"C:\Program Files (x86)\Common Files\Oracle\Java\javapath"可以删除,不会影响环境变量的配置,建议将其删除
三、安装IntelliJ IDEA
下载网址:
下载 IntelliJ IDEA – 领先的 Java 和 Kotlin IDE
IntelliJ IDEA 2023.2 最新变化
IntelliJ IDEA 2023.2 引入 AI Assistant,通过一组由 AI 提供支持的功能助力开发。 升级的 IntelliJ 分析器现在提供编辑器内提示,使分析进程更加直观详尽。 此版本还包括有助于简化开发工作流的 GitLab 集成,以及其他多项值得关注的更新和改进,如下所述。
1、安装idea
1.1、下载 IDEA 安装包
访问 IDEA 官网,下载 IDEA 2023.2.5 版本的安装包,下载链接如下 :
Download IntelliJ IDEA – The Leading Java and Kotlin IDE
打开页面后,点击 Download 按钮, 等待 IDEA 专业版下载完毕。下载的时候别下错了:
1.2、:卸载老版本 IDEA(未安装则不用管,跳过看下面步骤)
注意,安装新版本 IDEA 之前,如果本机安装过老版本的 IDEA, 需要先彻底卸载,以免两者冲突,导致破解失败。
卸载完成后,点击 Close 按钮关闭弹框:
未安装从此开始第三步:安装 IDEA 2023.2.5 版本
1.3、安装
卸载老版本 IDEA 完成后,双击刚刚下载好的 IDEA 2023.23.4 版本安装包。弹框会提示选择安装路径,选择的安装路径,如何C盘空间足够,建议默认C:\Program Files\JetBrains\IntelliJ IDEA 2023.3.4,若不足,更换安装位置,然后点击 Next 按钮:
然后,勾选 Create Desktop Shortcut 创建 IDEA 桌面快捷启动方式,以方便后面快速打开 IDEA,再点击 Next 按钮 :
记得再勾选 “Add bin folder to the path”
创建关联,勾选哪一个,以后双击电脑上的 .java 文件就会用它打开,建议不勾选
点击 Install 按钮,开始安装:
等待安装完成后,勾选 Run IntellJ IDEA, 点击 Finish 按钮即运行 IDEA :
IDEA 运行成功后,会弹出如下对号框,强制用户需要先登录 JetBrains 账户才能使用:
不用管登录的事,点击 Exit 按钮退出对话框,装备开始破解激活。
1.4、优化
优化补丁我放置在了网盘中
链接:百度网盘 请输入提取码
提取码:6666
汉化方法:
关于汉化方面,据说目前官方已经自带中文,默认情况下中文是不开启的,根据 JetBrains 官方的说明,所有的 i18n 包都是以插件的形式集成到 IntelliJ IDEA中的。需要你自己去集成汉化插件。关于集成汉化插件的步骤是 Ctrl+ALT+S 打开 Settings -> Plugins ,搜索Chinese安装,然后重启即可
2、配置jdk
为当前项目配置 JDK
1、依次点击菜单栏 File -> Project Structrue :
IDEA 配置 JDK 步骤1
2、点击 SDKs -> + -> Add JDK ... ,开始添加新的 JDK :
IDEA 点击添加新的 JDK
3、选择新的 JDK 安装目录,小哈这里新添加的 JDK 17, 然后点击【OK】按钮:
选择新的 JDK 安装目录
4、添加 JDK 成功后,列表中即可看到新添加的 JDK, 然后点击【Apply】按钮, 再点击【OK】按钮:
JDK 添加成功
5、至此,IDEA 中配置 JDK 就完成了。
全局配置 JDK
全局配置 JDK
点击 File -> New Projects Setup -> Structure -> Project 下的 SDK 选项,将其更改为你最常用的 JDK 版本:
IDEA 全局配置 JDK
这样我们就可以完成对于idea的安装操作。
四、Maven下载
项目构建神器——Maven,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现;它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀的、流行的构建工具,从此以后,再也不用担心项目搞崩了。
总结一下 Maven 的优点,主要有以下 3 点:
- 依赖管理:Maven 能帮助我们解决软件包依赖的管理问题,不再需要提交大量的 jar 包、引入第三方库;
- 规范目录结构:Maven 标准的目录结构有助于项目构建的标准化,通过配置 profile 还可以根据不同的环境(开发环境、测试环境,生产环境)读取不同的配置文件;
- 方便集成:能够集成在 IDE 中更方便使用。
1、Maven下载
maven配置:
官网:
解压到空文件夹
安装后进行环境变量配置:
打开命令行:
配置本地仓库:
修改settings.xml
5.1、找到maven目录下的conf文件夹
记事本打开:
本地仓库:(创建一个本地仓库文件夹)
本地仓库地址:
镜像地址更换
idea中maven配置:
1.单一项目配置:
2.全局配置:
关闭项目:
进入所有设置:
同理搜索maven,选择对应的路径便可。
idea创建maven项目
在新建的空项目中新建模块,选择如下:
由于未导入jar包,所以报错:
写入gav坐标
<dependencies> <!-- 日志 --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> </dependencies>
加载更新即可导入jar包:
坐标查询;Maven Repository: Search/Browse/Explore
这样便是加载成功:
配置完成
————————————————————————————————————————————————————————————————————————————
6、常见问题:
在创建moudle时候容易出现maven导入包出错,原图在于maven仓库idea无权限访问本地创建的maven仓库。
打开编辑设置完全访问。
常见问题:
程序包org.springframework.boot.autoconfigure不存在
使用idea2020.2.2新版本发现新建的springboot项目起不来,报错信息如下:
java: 程序包org.springframework.boot不存在
java: 程序包org.springframework.boot.autoconfigure不存在
java: 找不到符号
新手!!这是让人很烧脑的问题,在经过询问度娘后发现解决办法很多种啊。。
解决方法1:
检查maven是否正确配置。
cmd > mvn -v
解决方法2:
需设置Maven > Runner > Delegate IDE build/run actions to Maven。
也就是将IDE构建/运行操作委托给Maven。
方法三:
就是你的maven本地仓库出现问题,maven仓库里面可能存在文件夹为null,但是maven不会跟你说,文件空我就报错,maven只认识文件名称,根本不知道里面的内容,这就是报错原因,
解决:清空本地仓库,然后重新下载,就欧克了。
错误
NoGoalSpecifiedException - Apache Maven - Apache Software Foundation
D:\JAVA\jdk17\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:52330,suspend=y,server=n -Dmaven.multiModuleProjectDirectory=D:\IntelliJIDEA_project\ltfbao\myspringboot -Djansi.passthrough=true -Dmaven.home=D:\maven\apache-maven-3.9.5 -Dclassworlds.conf=D:\maven\apache-maven-3.9.5\bin\m2.conf "-Dmaven.ext.class.path=D:\IntelliJ IDEA\IntelliJ IDEA 2023.2.5\plugins\maven\lib\maven-event-listener.jar" -javaagent:C:\Users\LTF\AppData\Local\JetBrains\IntelliJIdea2023.2\captureAgent\debugger-agent.jar -Dfile.encoding=UTF-8 -classpath "D:\maven\apache-maven-3.9.5\boot\plexus-classworlds-2.7.0.jar;D:\maven\apache-maven-3.9.5\boot\plexus-classworlds.license;D:\IntelliJ IDEA\IntelliJ IDEA 2023.2.5\lib\idea_rt.jar" org.codehaus.classworlds.Launcher -Didea.version=2023.2.5 -s D:\maven\apache-maven-3.9.5\conf\settings.xml -Dmaven.repo.local=D:\maven\repository -P jdk-17.0.9
Connected to the target VM, address: '127.0.0.1:52330', transport: 'socket'
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.494 s
[INFO] Finished at: 2023-11-14T23:23:39+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format : or :[:]:. Available lifecycle phases are: pre-clean, clean, post-clean, validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-site, site, post-site, site-deploy. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] NoGoalSpecifiedException - Apache Maven - Apache Software Foundation
Disconnected from the target VM, address: '127.0.0.1:52330', transport: 'socket'
Process finished with exit code 1