【问题标题】:Exception in Application start method related error应用程序启动方法相关错误中的异常
【发布时间】:2022-01-01 08:03:25
【问题描述】:

我试图从 IntelliJ Idea 20.1 运行示例 JavaFX 项目。该程序是一个示例程序。结构是

和代码一样,我什么都没改

我正在使用 jdk 11,openjfx 17,我收到此错误,我不明白原因我尝试了许多可能的解决方案似乎没有任何效果。

Exception in Application start method
java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:465)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:364)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
Caused by: java.lang.RuntimeException: Exception in Application start method
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:901)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalAccessError: class com.sun.javafx.fxml.FXMLLoaderHelper (in unnamed module @0x4800c48b) cannot access class com.sun.javafx.util.Utils (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.util to unnamed module @0x4800c48b
    at com.sun.javafx.fxml.FXMLLoaderHelper.<clinit>(FXMLLoaderHelper.java:38)
    at javafx.fxml.FXMLLoader.<clinit>(FXMLLoader.java:2135)
    at sample.Main.start(Main.java:13)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:847)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)
    at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
    at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:290)
    ... 1 more
Exception running application sample.Main

【问题讨论】:

  • 我不知道示例 JavaFX 项目是什么,也不知道错误的原因,但让 JavaFX 在 Idea 中工作的最简单方法是使用 new JavaFX project wizard IMO。我还建议 jdk 17 而不是 11。
  • 请不要截图代码(和fxml),将其粘贴为格式化为代码的文本(只需缩进4个空格)。
  • 很可能,您在某处设置了--add-modules,但您忘记包含javafx.fxml
  • 使用 IDE 新建项目向导创建一个正确的 javaFX 项目,该项目可以在 JDK 9+ 版本中正常工作。
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: java intellij-idea javafx


【解决方案1】:

我的错误原因是一个简单的模块配置,我终于在项目模块上添加了JavaFX库并删除了VM选项参数并且它起作用了。

谢谢大家,感谢你们的cmets!

【讨论】:

    猜你喜欢
    • 2019-08-03
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 2018-05-29
    相关资源
    最近更新 更多