JDK8 升级至 JDK17 打包问题分析

本文描述了在将项目JDK版本从1.8升级到17时,遇到的因module模块化结构导致的Maven打包错误。解决方案是通过添加`--add-exports`打包参数指定sun.security.util包的出口。
摘要由CSDN通过智能技术生成
一、概述

近日为了满足客户需求将项目的jdk版本由原先的1.8升级至17,整个过程比较顺利,但是在maven 打包时出现了报错。报错信息为:(程序包 sun.security.util 已在模块 java.base 中声明, 但该模块未将它导出到未命名模块)
在这里插入图片描述

二、问题分析

引起该问的原因是因为从jdk9 开始使用module 模块化引用的结构,包时存在的,只是我们在打包时没有将该模块引入并声明。
关于 module 模块化的文章,可以看这篇博文:https://zhuanlan.zhihu.com/p/640217638

三、解决方案

在打包时 加上打包参数

<arg>--add-exports</arg>
<arg>java.base/sun.security.util=ALL-UNNAMED</arg>

如下图:
在这里插入图片描述
至此 问题得到解决。针对不同的包 java.base/ *** 可以加上 不用的 报名。都属于同类问题,都可以得到解决。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Resean0223

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值