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>



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

相关推荐
zhangjw348 分钟前
第15篇:Java多线程零基础入门,进程线程、线程创建方式、线程生命周期、线程安全彻底吃透
java·开发语言·面试
蝈理塘(/_\)大怨种9 分钟前
类和对象 (上)
java·开发语言
captain_AIouo1 小时前
全域电商流量竞争白热化,autoAGC AI助商家破局增收
大数据·人工智能·经验分享·aigc
我材不敲代码1 小时前
Python 函数核心:位置参数与关键字参数详解
java·前端·python
数据库小学妹1 小时前
HTAP混合负载架构:如何用一个数据库同时搞定交易和分析
数据库·经验分享·架构·dba
qq_333120972 小时前
C++高并发内存池的整体设计和实现思路_C 语言
java·c语言·c++
mh_f2 小时前
33.批量通过GET链接下载图片到指定文件夹下
java
金銀銅鐵2 小时前
[Java] 如何理解 class 文件中方法的 access flags?
java·后端
智研数智工坊2 小时前
SpringBoot4.0.6 + Security7.x + JWT 最新完整实战|无状态权限认证、统一异常处理、可直接落地
java·spring boot·spring security·jwt·权限认证
DIY源码阁2 小时前
JavaSwing宿舍管理系统 - MySQL版
java·数据库·mysql·eclipse