Java的添加打开似乎无法使程序包可访问

时间:2018-09-29 15:05:21

标签: java javafx javafx-11

我试图在其中访问JavaFX的package-private类和public静态方法(javafx.scene.control.skin.TableSkinUtils.resizeColumnToFitContent),以便可以自动调整TableView列的大小。

但是,我正在使用模块系统,因为JavaFX 11似乎要求我的应用程序必须是模块。如果我没有为我的应用程序指定模块,则会出现以下错误:Error: JavaFX runtime components are missing, and are required to run this application我实际上更愿意完全不使用模块系统,有办法吗?

现在,由于模块系统的原因,在尝试使方法TableSkinUtils.resizeColumnToFitContent可以访问时出现了异常:

Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make public static void javafx.scene.control.skin.TableSkinUtils.resizeColumnToFitContent(javafx.scene.control.skin.TableViewSkinBase,javafx.scene.control.TableColumnBase,int) accessible: module javafx.controls does not "opens javafx.scene.control.skin" to module Explorer

因此,我尝试将以下解决方法:--add-opens javafx.controls/javafx.scene.control.skin=ALL-UNNAMED添加到Intellij的运行配置VM选项中。

但是,无论有没有上述情况,我都会遇到相同的例外情况。

我可能做错了什么?

0 个答案:

没有答案