Java创建标签时的JavaFX 11:IllegalAccessError

Java创建标签时的JavaFX 11:IllegalAccessError,第1张

Java创建标签时的JavaFX 11:IllegalAccessError

你已经在说明问题了:

我尚未修改任何VM选项。

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

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

但是,一旦做到了这一点,并且考虑到

JavaFX jar
是模块,那么你仍然需要做两件事:

  • 使JavaFX模块可用于你的模块路径
  • 定义要添加到项目中的模块

根据你的

IntelliJ
输出,它在默认情况下添加
javafx.graphics
javafx.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

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



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4990598.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存