首页 > 解决方案 > JavaFX .jar 不工作(启动层初始化期间发生错误)

问题描述

在我的 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

标签: javajavafxjarexecutable-jar

解决方案


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

解决方法是:

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

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

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


推荐阅读