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

pez*_*pez 2 java java-8 java-11

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

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

谢谢!

Mar*_*nik 6

打包com.sun.*sun.*保存内部资料,一般情况下不应该被第三方应用程序(例如你的应用程序)使用.

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

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

加成:

您可以尝试(我不建议)应用这篇伟大文章中的一些"解决方案"工具(阅读"非法访问内部API"一章),但正如本文作者所述,最直接的方法是停止使用这些包在您的代码中,因此将其视为第一个赌注.