java报错解决:sun.net.utils不存

目录

一、报错信息

二、报错的原因

三、解决方案

解决方案一:降级JDK版本

方案二:添加JVM编译参数

解决方案三:Maven项目配置


一、报错信息

启动服务的时候出现了报错,报错信息如下

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>



本次的分享就到此为止了,希望我的分享能给您带来帮助,分享不易也欢迎大家三连支持,你们的点赞就是博主更新最大的动力! 如有不同意见,欢迎评论区积极讨论交流,让我们一起学习进步! 有相关问题也可以私信博主,评论区和私信都会认真查看的,我们下次再见

相关推荐
nanxun8864 小时前
记一次诡异的 Docker 容器"串包"故障排查
java
唐青枫6 小时前
别再乱用 StartNew:C#.NET TaskFactory 任务调度实战详解
c#·.net
用户1563068103517 小时前
Day01 | Java 基础(Java SE)
java
行者全栈架构师8 小时前
Maven dependency:tree 的 8 个高级用法
java·后端
行者全栈架构师12 小时前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端
令人头秃的代码0_012 小时前
mac(m5)平台编译openjdk
java
唐青枫1 天前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
一个做软件开发的牛马2 天前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
用户3721574261352 天前
Java 处理 PDF 图片:提取 PDF 中的图片,并压缩 PDF 图片体积
java
用户3721574261352 天前
Java 打印 Word 文档:从基础打印到高级设置
java