我正在尝试将应用程序从Java 8迁移到Java 11.当我尝试在IntelliJ中构建项目时,我得到 package sun.util does not exist 错误?
package sun.util does not exist
关于什么事情的任何想法?
谢谢!
包 com.sun.* 和 sun.* 包含内部内容,并且在一般情况下不应由第三方应用程序(例如您的应用程序)使用 .
com.sun.*
sun.*
由于在java 9中引入了模块系统,现在Oracle甚至在编译时“保护”这些包 .
所以显而易见的方法是在代码中摆脱这种依赖 . 他们为什么要保护?因为他们给自己留下改变这些东西的权利,正如我所说,它被认为是内部的 .
加成:
您可以尝试(我不建议)应用this great article中的一些"resolution"工具(阅读"Illegal Access To Internal APIs"章节),但正如本文作者所述,最直接的方法是在代码中停止使用这些包,因此请将其视为第一个赌注 .
1 回答
包
com.sun.*
和sun.*
包含内部内容,并且在一般情况下不应由第三方应用程序(例如您的应用程序)使用 .由于在java 9中引入了模块系统,现在Oracle甚至在编译时“保护”这些包 .
所以显而易见的方法是在代码中摆脱这种依赖 . 他们为什么要保护?因为他们给自己留下改变这些东西的权利,正如我所说,它被认为是内部的 .
加成:
您可以尝试(我不建议)应用this great article中的一些"resolution"工具(阅读"Illegal Access To Internal APIs"章节),但正如本文作者所述,最直接的方法是在代码中停止使用这些包,因此请将其视为第一个赌注 .