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>



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

相关推荐
云姜.6 小时前
java多态
java·开发语言·c++
李堇6 小时前
android滚动列表VerticalRollingTextView
android·java
2501_930707786 小时前
使用 C# .NET 从 PowerPoint 演示文稿中提取背景图片
c#·powerpoint·.net
泉-java6 小时前
第56条:为所有导出的API元素编写文档注释 《Effective Java》
java·开发语言
Libraeking6 小时前
导航之弦:Compose Navigation 的深度解耦与类型安全
经验分享·android jetpack
zfoo-framework6 小时前
帧同步和状态同步
java
charlotte102410246 小时前
高并发:关于在等待学校教务系统选课时的碎碎念
java·运维·网络
亓才孓6 小时前
[JDBC]PreparedStatement替代Statement
java·数据库
_F_y7 小时前
C++重点知识总结
java·jvm·c++
打工的小王7 小时前
Spring Boot(三)Spring Boot整合SpringMVC
java·spring boot·后端