我将 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" \
这意味着您添加了两次,但只有最后一次有效。因此只有javafx-base
和javafx-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 中设置。
添加回答
举报
0/150
提交
取消