我正在尝试将一个应用程序从Java 8迁移到Java 11。当我在IntelliJ中尝试构建项目时,我遇到了一个package sun.util does not exist
的错误?
有什么想法吗?
谢谢!
包 com.sun.*
和 sun.*
存放着内部的东西,通常情况下不应该被第三方应用(可能包括你的应用)使用。
自从Java 9引入模块化系统后,Oracle在编译时也会“保护”这些包。
所以明智的做法是在你的代码中消除对这些包的依赖。为什么要这样做?因为他们保留了更改此内容的权利,就像我之前说的那样,这被认为是内部的。
补充:
你可以尝试(但我不建议)应用这篇文章中的一些“解决”工具(请阅读“非法访问内部API”章节),但正如本文作者所述,最简单的方法是停止在你的代码中使用这些包,所以请把它作为第一选择。
ResourceBundleEnumeration
来实现我们自己的ResourceBundle
。但是我已经找到了一种使用new Vector<>(keySet).elements()
的方法,它似乎可以工作。 - pez