【问题标题】:JavaFX .jar not working (Error occurred during initialization of boot layer)JavaFX .jar 不工作(启动层初始化期间发生错误)
【发布时间】:2020-06-24 17:50:29
【问题描述】:

在我的 IDE (IntelliJ) 中,程序运行没有任何问题。我尝试通过 IDE 创建一个 JavaFX .jar,但它不起作用,但这似乎是 JavaFX 和 JDK 11 之间已知的兼容性问题。

在此之后,我尝试创建一个普通的 .jar 并通过以下命令执行它:

java --module-path "C:\Users\nerla\Desktop\Coding\JavaFX_SDK\javafx-sdk-11.0.2\lib" --add-modules=javafx-swt,javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web -jar "C:\Users\nerla\Desktop\Uni\Programming II\Mathdoku\out\artifacts\Mathdoku_jar\Mathdoku.jar"

它仍然不起作用并产生以下错误:

Error occurred during initialization of boot layer
java.lang.module.FindException: Module javafx-swt not found

【问题讨论】:

  • 你在使用模块javafx-swt吗?这是 SWT 库的一部分,如果没记错的话……
  • Java 7 内置了 javafx,但后来被删除了
  • @UsagiMiyamoto 是的,我正在使用 javafx-swt

标签: java javafx jar executable-jar


【解决方案1】:

让使用 JavaFX 11 创建的 JAR 正常工作时,我遇到了类似的问题。

解决方法是:

  • 在不扩展应用程序的类中创建一个额外的 main 方法,而只是调用您真正的 main 方法。
  • 在 JAR 中包含 .so 文件。

要在 IntelliJ 中做到这一点,它是:

文件 > 项目结构 > 工件 > 单击“+”号 > 文件 > 然后选择 JavaFX 文件夹中的所有 .so 文件。

【讨论】:

    猜你喜欢
    • 2019-02-24
    • 2021-05-17
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 2021-07-23
    • 1970-01-01
    相关资源
    最近更新 更多