您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Java创建标签时的JavaFX 11:IllegalAccessError

Java创建标签时的JavaFX 11:IllegalAccessError

你已经在说明问题了:

我尚未修改任何VM选项。

由于JavaFX 11不再是JDK的一部分,因此你必须从此处使用JavaFX SDK(如你所做的那样),或者使用Maven / Gradle从Maven Central检索JavaFX模块。

然后,你需要将SDK添加为库,以便IntelliJ可以找到JavaFX类。

但是,一旦做到了这一点,并且考虑到JavaFX jar是模块,那么你仍然需要做两件事:

根据你的IntelliJ输出,它在认情况下添加javafx.graphicsjavafx.base

--add-modules javafx.base,javafx.graphics

-p /usr/lib/jvm/javafx-sdk-11.0.2/lib/javafx.base.jar
:/usr/lib/jvm/javafx-sdk-11.0.2/lib/javafx.graphics.jar

(请注意-p与相同–module-path

这说明了为什么你的项目在第一种情况下运行,即当你没有将控件添加到场景中时,仅运行StackPane属于javafx.graphics 模块的控件,而在添加添加了Label属于javafx.controls 模块的控件时,失败并显示已发布的异常。

已经说过很多次了:你需要为项目设置所需的VM选项。

首先阅读https://openjfx.io/openjfx-docs/上的文档,包括IntelliJ文档,IDE的非模块化项目部分。并阅读第4部分。添加VM选项。

因此,单击运行->编辑配置,然后添加

-p /usr/lib/jvm/javafx-sdk-11.0.2/lib --add-modules javafx.controls

应用并运行,该问题将得到解决

Access 2022/1/1 18:24:55 有325人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶