我有一个旧的代码库,目前使用java8。我正在迁移代码库以使用jdk9ea。但是看起来所有的sun.font类现在都不像以前那样可用了
error: package sun.font does not exist
更具体地说,我正在使用复合物字体2Dfontdesignmetrics公司字体管理器FontManager工厂sunfontmanager公司还有更多。。
wecizke31#
模块系统的一个特点是,它允许库开发人员根据新的可访问性规则对实现细节进行强封装。简而言之,大多数类型 sun.* 以及 com.sun.* 包将不再可访问。这与sun和后来的oracle的说法一致,即这些软件包不是供公众使用的。解决方法是在编译和启动时使用命令行标志导出这些包:
sun.*
com.sun.*
--add-exports java.desktop/sun.font=ALL-UNNAMED
这将导出包 sun.font 从模块java.desktop到所有模块,包括未命名模块,该模块收集类路径上的所有类。
sun.font
1条答案
按热度按时间wecizke31#
模块系统的一个特点是,它允许库开发人员根据新的可访问性规则对实现细节进行强封装。简而言之,大多数类型
sun.*
以及com.sun.*
包将不再可访问。这与sun和后来的oracle的说法一致,即这些软件包不是供公众使用的。解决方法是在编译和启动时使用命令行标志导出这些包:
这将导出包
sun.font
从模块java.desktop到所有模块,包括未命名模块,该模块收集类路径上的所有类。