从JDK8升级到JDK17

news2024/9/29 7:58:06

JDK8太老了,发布10年了吧,新开发的还是用最新免费长期支持版JDK17吧。这次把工程和环境升级到JDK17再继续后面工作,避免后面写多了还得解决升级问题。

先从官网下载JDK17
下载地址

在这里插入图片描述

解压后的文件夹放到一个位置
在这里插入图片描述

然后修改环境变量
在这里插入图片描述

修改好之后在cmd运行java -version还是之前java1.8,这时候删除下图的javapath文件夹
在这里插入图片描述

测试正常后修改工程的版本
在这里插入图片描述

先把内嵌的Tomcat更新到Tomcat10
在这里插入图片描述

Tomcat10之后servlet引用从javax.servlet变成jakarta.servlet,每个工程的import都得改一下
在这里插入图片描述

每个工程的版本改17
在这里插入图片描述

这里碰到一个问题,工程改了之后报,原因就是工程java字节码比引用的Tomcat的servlet-api的老,实际工程还是用的java8的检测。(类文件具有错误的版本55.0,应为52.0)
在这里插入图片描述

这应该是idea的bug,有文件没改全,把工程文件的这个改17就可以了
在这里插入图片描述

然后运行测试,这次Tomcat信息中文部乱码了
在这里插入图片描述

乱码问题修改这里
在这里插入图片描述

整个项目JDK17就用上了,同时用Tomcat10,应该性能更好,语法特性也有改进

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

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

相关文章

IntelliJ IDEA 如何修改默认Maven仓库地址

在使用idea过程中,每次新建项目或者打开项目时,maven仓库地址都会变为默认地址。如何修改默认地址,让其保持不变,如下这种方式可以简单快捷的设置。 1.打开idea,取消项目自动加载 2.点击 Customize,然后再点击 All se…

spdk用户态块层详解

先通过回顾内核态的通用块层来详细介绍SPDK通用块层,包括通用块层的架构、核心数据结构、数据流方面的考量等。最后描述基于通用块层之上的两个特性:一是逻辑卷的支持,基于通用块设备的Blobstore和各种逻辑卷的特性,精简配置&…

【数据结构】树与二叉树(四):满二叉树、完全二叉树及其性质

文章目录 5.1 树的基本概念5.1.1 树的定义5.1.2 森林的定义5.1.3 树的术语5.1.4 树的表示 5.2 二叉树5.2.1 二叉树1. 定义2. 特点3. 性质引理5.1:二叉树中层数为i的结点至多有 2 i 2^i 2i个,其中 i ≥ 0 i \geq 0 i≥0。引理5.2:高度为k的二叉…

【git】TortoiseGit图标不显示 及 文件夹中.git文件夹不显示

(一)文件夹中.git文件夹不显示 在 文件夹选项-查看-高级设置 中, 将 隐藏文件和文件夹中的不显示,标记为“显示隐藏的文件、文件夹和驱动器” (二)TortoiseGit图标不显示 【情况一】是否有正确安装 Tort…

【STM32-DSP库的使用】基于Keil5 + STM32CubeMX 手动添加、库添加方式

STM32-DSP库的使用 一.CMSIS-DSP1.1 DSP库简介1.2 支持的函数类别1.3 宏定义 二、操作2.1 STM32CubeMX 配置基本工程2.2 Lib库的方式实现(推荐)2.3 手动添加DSP文件(可以下载官方最新库,功能齐全) 三、MFCC测试DSP加速效果 为验证语音识别MFC…

wait()和notify()

线程的状态 状态是针对当前线程调度的情况来描述的,也可以认为线程是调度的基本单位,在Java中对线程的状态进行了细化,主要分为下面几种状态 ★ 1.NEW 创建了Thread对象,但是还没有调用start ★ 2. TERMINATED 表示内核中的pcb已经执行完了,但是Thread对象还在. ★ 3. RUNNA…

初识微服务技术栈

认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构,这些架构之间有怎样的差别呢? 导学: 了解微服务的优缺点;了解微服务架构的演变过程&am…

分布式任务调度(00)--Quartz

1 任务调度整体流程 2 组件 调度器 :工厂类创建Scheduler,根据触发器定义的时间规则调度任务任务:Job表示被调度的任务触发器:Trigger 定义调度时间的元素,按啥时间规则执行任务。一个Job可被多个Trigger关联&#xf…

ps人像怎么做渐隐的效果?

photoshop怎么制作人像渐隐的图片效果?渐隐效果需要使用渐变来实现,下面我们就来看看详细的教程。 首先,我们打开Photoshop,点击屏幕框选的【打开】,打开一张背景图片。 下面,我们点击左上角【文件】——【…

centos7安装jdk-阿里云服务器

1.背景 2.安装步骤 步骤:(特别注意:虚拟机安装的一般是32位的操作系统,jdk也必须使用32位的) 查看虚拟机版本:sudo uname --m i686 //表示是32位 x86_64 // 表示是64位 查看是否已经安装jdk 看看 是否设置了jdk环境变量: echo $JAVA_HOME; 或运行命令: …

文件换行符导致linux里运行python文件找不到文件

现象 运行python代码的时候: 报错信息: : No such file or directoryon3 解决方法 在pycharm中把文件的分隔符给改了 这样,把文件的分隔符改成Unix and macOS就可以了

移远EC600U-CN开发板 day01

1.官方文档快速上手,安装驱动,下载QPYcom QuecPython 快速入门 - QuecPython (quectel.com)https://python.quectel.com/doc/Getting_started/zh/index.html 注意: (1)打开开发板步骤 成功打开之后就可以连接开发板…

起重机远程监控解决方案

起重机远程监控方案 门式起重机作为大型吊装设备,具有机器体积大、作业范围广、组合工况多等特点。在实际生产与吊装过程中,由于场地环境复杂、各类材料和结构件随处可见,在门式起重机作业中极易出现起重机构过载、吊装物品碰撞等问题。 一、…

Web服务器实战

网站需求 1.基于域名www.openlab.com可以访问网站内容为 welcome to openlab!!! 2.给该公司创建三个网站目录分别显示学生信息,教学资料和缴费网站,基于www.openlab.com/student 网站访问学生信息,www.openlab.com/data网站访问教学资料 www…

DDD领域模式的模块层级及其依赖关系

DDD领域模型设计是一种常用的软件设计模式,它强调将业务逻辑和数据模型放在最核心的位置,以便更好地满足业务需求。在DDD领域模型设计中,应用程序被分为四个层次:用户界面层、应用服务层、领域模型层和基础设施层。 层次 用户界面层(Presentation Layer) 作为用户和应…

思维训练4

题目描述1 Problem - A - Codeforces 题目分析 对于此题我们要求差值种类最大,故我们可以构造出相邻差值分别为1,2,3...由于n规定了最大的范围故我们增到一定的差值之后其差值必定为之前出现过的数字,但由于要保证数组呈递增趋势…

java项目之线上教学平台(springboot框架)

项目简介 线上教学平台实现了以下功能: 管理员:首页、个人中心、学员管理、资料类型管理、学习资料管理、交流论坛、我的收藏管理、试卷管理、留言板管理、试题管理、系统管理、考试管理。学员:首页、个人中心、我的收藏管理、留言板管理、…

优思学院|APQP(先期产品质量规划)简介

在汽车行业,APQP Advanced Product Quality Planning(先期产品质量规划),是一种常用的质量规划指南和工具,但它同样适用于其他行业。APQP是汽车国际行动组织(AIAG)提出的一种方法,用…

百数低代码与AI:实现业务智能化的新途径

今年6月,咨询机构麦肯锡发布了的一份题为《生成式人工智能的经济潜力》的研究报告,在报告中,分析师们通过对47个国家及地区的850种职业(全球80%以上劳动人口)的研究,探讨了在AI成指数级发展背后&#xff0c…

【云原生】使用nginx反向代理后台多服务器

背景 随着业务发展, 用户访问量激增,单台服务器已经无法满足现有的访问压力,研究后需要将后台服务从原来的单台升级为多台服务器,那么原来的访问方式无法满足,所以引入nginx来代理多台服务器,统一请求入口…