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>



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

相关推荐
geovindu5 小时前
CSharp: Prototype Pattern
开发语言·后端·设计模式·.net·原型模式·创建型模式
BomanGe35 小时前
NSK RNFTL5016A5S 滚珠丝杠技术规范
经验分享·规格说明书
Listen·Rain6 小时前
Springboot整合Ollama实现调用本地多模型
java·spring boot·后端
霸道流氓气质6 小时前
Java 工程师 AI 智能体(Agent)完整学习路线
java·人工智能·学习
aaPIXa6226 小时前
C++模板元编程:编译期计算Fibonacci数列
java·开发语言·c++
SunnyDays10116 小时前
Java 编辑 PDF:从增删改查到加密保护
java·修改 pdf·编辑 pdf
球king6 小时前
CC GUI 插件:在 IDEA 中使用 CodeX
java·ide·intellij-idea
豆瓣鸡7 小时前
网关、服务 userId 透传
java·微服务·gateway
bksczm7 小时前
Linux之信号量(POSIX标准)
java·开发语言
Devin~Y7 小时前
电商场景下的Java面试实战:从Spring Boot微服务到Kafka、Redis与AI RAG
java·spring boot·redis·elasticsearch·spring cloud·微服务·kafka