目录
一、报错信息
启动服务的时候出现了报错,报错信息如下
java
错误: 程序包sun.net.utils不存在
java
错误: 找不到符号
符号: 类 utils
位置: 程序包 sun.net
二、报错的原因
sun.* 是Sun公司在开发JDK时创建的内部包,这些包并不属于Java语言规范的一部分。这些包位于 java.base 模块中,从 JDK 9 开始,模块系统(JPMS)默认禁止外部代码访问内部包。
三、解决方案
知道了报错的原因就可以对症下药,解决方案主要分为这几个思路,降低jdk版本,比如改用jdk8就可以正常访问,或者提高模块权限
解决方案一:降级JDK版本
笔者亲测有效,按照下图设置后,重新编译文件在运行就可以正常启动服务了

下面还有俩种方法笔者还没有进行验证,并不能确保一定能奏效,但这里还是贴出来以作参考
方案二:添加JVM编译参数
原理是通过开放模块权限,允许你的代码访问内部 API
在 IDEA 中设置:File → Settings → Build → Compiler → Java Compiler
在 Additional command line parameters 中添加:
java
--add-exports java.base/sun.net.util=ALL-UNNAMED
解决方案三:Maven项目配置
在pom.xml中配置maven-compiler-plugin:
XML
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<release>17</release>
<compilerArgs>
<arg>--add-exports</arg>
<arg>java.base/sun.net.util=ALL-UNNAMED</arg>
</compilerArgs>
</configuration>
</plugin>
本次的分享就到此为止了,希望我的分享能给您带来帮助,分享不易也欢迎大家三连支持,你们的点赞就是博主更新最大的动力!
如有不同意见,欢迎评论区积极讨论交流,让我们一起学习进步!
有相关问题也可以私信博主,评论区和私信都会认真查看的,我们下次再见 
