为了账号安全,请及时绑定邮箱和手机立即绑定

javafx 12 中模块未导出异常

javafx 12 中模块未导出异常

慕丝7291255 2023-08-16 17:44:58
我将 Intellij 与 javafx 12 一起使用,作为一个单独的库。我设法让它发挥作用。我做了一个游戏,图形效果很棒。现在我想创建一个带有一些按钮的菜单。当我尝试将按钮添加到场景的根目录时,它会引发异常,但有以下异常:Exception in thread "JavaFX Application Thread" java.lang.IllegalAccessError: superclass access check failed: class com.sun.javafx.scene.control.ControlHelper (in unnamed module @0x77b376ef) cannot access class com.sun.javafx.scene.layout.RegionHelper (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.scene.layout to unnamed module @0x77b376ef我用谷歌搜索并找到了一些关于堆栈溢出的解决方案,但这些解决方案对我不起作用。我的命令行参数如下(基于这些解决方案):--module-path "C:\Program Files\Java\javafx-sdk-11.0.2\lib" \ --add-modules=javafx.swing,javafx.graphics,javafx.fxml,javafx.media,javafx.web,javafx.scene,javafx.controls \ -p "C:\Program Files\Java\javafx-sdk-11.0.2\lib\javafx.base.jar" : \   "C:\Program Files\Java\javafx-sdk-11.0.2\lib\javafx.graphics.jar"  \ --add-exports javafx.graphics=ALL-UNNAMED \ --add-exports javafx.controls/com.sun.javafx.charts=ALL-UNNAMED \ --add-exports javafx.graphics/com.sun.javafx.iio=ALL-UNNAMED \ --add-exports  javafx.graphics/com.sun.javafx.iio.common=ALL-UNNAMED \ --add-exports  javafx.graphics/com.sun.javafx.css=ALL-UNNAMED \ --add-exports  javafx.base/com.sun.javafx.runtime=ALL-UNNAMED \ --add-exports javafx.controls/com.sun.javafx.scene.control=ALL-UNNAMED \ --add-exports javafx.graphics/com.sun.javafx.scene.layout=ALL-UNNAMED谢谢!
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

答案就在你的命令行中:

--module-path "C:\Program Files\Java\javafx-sdk-11.0.2\lib" \
...
-p "C:\Program Files\Java\javafx-sdk-11.0.2\lib\javafx.base.jar" : \
   "C:\Program Files\Java\javafx-sdk-11.0.2\lib\javafx.graphics.jar"  \

--module-path

这意味着您添加了两次,但只有最后一次有效。因此只有javafx-basejavafx-graphics被添加到模块路径中,因此javafx-controls不是。这解释了异常(与 相关),以及您不必要地添加了所有这些 的com.sun.javafx.scene.control.ControlHelper事实。--add-exports

您可能不会使用 Swing、Media 或 Web,因此这个命令行就足够了:

--module-path "C:\Program Files\Java\javafx-sdk-11.0.2\lib" \
--add-modules javafx.fxml,javafx.controls

这些 VM 选项可以在您的 IDE 中设置。

查看完整回答
反对 回复 2023-08-16
  • 1 回答
  • 0 关注
  • 157 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信