You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven构建的JavaFX JAR无法运行,报错找不到主类及依赖类

问题原因

maven-jar-plugin生成的是瘦JAR,仅包含你的项目代码,不会自动打包JavaFX等第三方依赖类。而javafx:run命令是通过JavaFX Maven插件自动处理了模块路径和依赖加载,所以能正常启动,但直接运行瘦JAR时,JVM找不到JavaFX相关类,就会抛出NoClassDefFoundError。

解决方案:生成包含所有依赖的胖JAR

使用maven-shade-plugin插件将项目代码和所有依赖(包括JavaFX类)打包成一个可执行的胖JAR,步骤如下:

在你的pom.xml的<build><plugins>节点中添加以下插件配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.4.1</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <transformers>
                    <!-- 指定主类,让JAR可直接执行 -->
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <mainClass>org.openjfx.App</mainClass>
                    </transformer>
                    <!-- 处理JavaFX的服务配置,避免模块化冲突 -->
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
                </transformers>
                <!-- 排除签名文件,防止打包时出现重复签名错误 -->
                <filters>
                    <filter>
                        <artifact>*:*</artifact>
                        <excludes>
                            <exclude>META-INF/*.SF</exclude>
                            <exclude>META-INF/*.DSA</exclude>
                            <exclude>META-INF/*.RSA</exclude>
                        </excludes>
                    </filter>
                </filters>
            </configuration>
        </execution>
    </executions>
</plugin>
运行步骤
  1. 执行打包命令:
mvn clean package
  1. 在target目录下找到带-shaded后缀的JAR文件(比如hellofx-1.0-SNAPSHOT-shaded.jar),运行它:
java -jar hellofx-1.0-SNAPSHOT-shaded.jar
补充说明

如果你的项目是模块化的(带有module-info.java),maven-shade-plugin可能需要额外配置模块合并,但对于大多数学校项目的非模块化JavaFX结构,上述配置足够使用。

内容的提问来源于stack exchange,提问作者Johan Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 11:40:33