我正在将我的 Maven JavaFX 应用程序从 Java 8 迁移到 Java 11。我已将我的 pom.xml 中的插件更新为最新的(符合 Java 11 的)插件。编译运行良好,在“目标”文件夹下的正确目录中为我提供了 jar 和所有依赖项和模块,但是当我尝试运行我的 jar 文件时,我得到了可怕的“缺少 JavaFX 应用程序类”错误。无论我如何尝试更改插件配置 - 我总是收到此错误消息并且应用程序将无法运行。
现在,更多的发现: 1. 主类确实驻留在类和 jar 下的正确文件夹中。2. Manifest 文件在正确的位置并包含主类属性(在 Java 8 下运行良好)。
这是相关部分
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>11</source>
<release>11</release>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
<compilerVersion>11</compilerVersion>
</configuration>
<dependencies>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>7.0</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>false</addClasspath>
<mainClass>${mainClass}</mainClass>
</manifest>
<manifestEntries>
<JavaFX-Application-Class>${mainClass}</JavaFX-Application-Class>
</manifestEntries>
</archive>
<outputDirectory>${project.build.directory}/libs</outputDirectory>
</configuration>
</plugin>
我通过包含文档中描述的 JavaFX 模块来运行 jar:
java -verbose --module-path ../mods \
--add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.swing \
-jar jar-file-name.jar \
package.class.MainClass
在我的挫折中,我尝试了无数的配置,包括使用 JavaFx Java 11 示例中的配置。没有任何效果。
有任何想法吗?
青春有我
相关分类