【发布时间】:2022-08-14 07:45:22
【问题描述】:
在构建获取包 sun.security.action 的代码时不可见
包 sun.security.action 在模块 java.base 上声明,它不会将其导出到未命名的模块。
我应该怎么办。 请多多指教,先谢谢了
标签: migration
在构建获取包 sun.security.action 的代码时不可见
包 sun.security.action 在模块 java.base 上声明,它不会将其导出到未命名的模块。
我应该怎么办。 请多多指教,先谢谢了
标签: migration
Java 8 没有模块系统——一切都是可见的,或者只需要通过 jdk 中的档案导入(f.e.工具.jar)。
Java 9 带来了JMS,并封装了一些jdk类。
在您的情况下,请参阅<JAVA_HOME>/lib/src.zip!/java.base/module-info.class:
exports sun.security.action to java.desktop, java.security.jgss, jdk.crypto.ec, jdk.incubator.foreign;您的包不是公开的,但仅限于其他一些内部包。
通过将编译器选项--add-exports=java.base/sun.security.action=ALL-UNNAMED添加到使固定此限制直到版本 16。使用版本 17 和 JEP 403 忘记所有希望。
定义新的标准 API 来替换尚不存在标准替换的内部元素不是目标,尽管可以建议此类 API 以响应此 JEP。
向后兼容和重要框架的优先级低于jdk安全- JCP 有时会做出奇怪的决定并与社区作对 -.-
【讨论】: