首页 文章

从Java 8升级到Java 11 - 包sun.util不存在

提问于
浏览
2

我正在尝试将应用程序从Java 8迁移到Java 11.当我尝试在IntelliJ中构建项目时,我得到 package sun.util does not exist 错误?

关于什么事情的任何想法?

谢谢!

1 回答

  • 6

    com.sun.*sun.* 包含内部内容,并且在一般情况下不应由第三方应用程序(例如您的应用程序)使用 .

    由于在java 9中引入了模块系统,现在Oracle甚至在编译时“保护”这些包 .

    所以显而易见的方法是在代码中摆脱这种依赖 . 他们为什么要保护?因为他们给自己留下改变这些东西的权利,正如我所说,它被认为是内部的 .

    加成:

    您可以尝试(我不建议)应用this great article中的一些"resolution"工具(阅读"Illegal Access To Internal APIs"章节),但正如本文作者所述,最直接的方法是在代码中停止使用这些包,因此请将其视为第一个赌注 .

相关问题