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

如何使用Maven构建含所有依赖的JavaFX可执行jar包并解决相关报错

问题解决路径

报错根因说明

  • no main manifest attribute, in csci6461-1.0-SNAPSHOT.jar:你当前运行的是Maven默认生成的未绑定主类、未携带依赖的普通项目jar包,不是maven-assembly-plugin生成的带依赖的目标jar。
  • Error: JavaFX runtime components are missing:OpenJFX 11+未内置在标准JDK中,直接打包继承Application的JavaFX主类作为入口时,会触发JavaFX模块检查机制,无法从fat jar中正常加载运行时组件。你pom中引入的org.codeartisans.javafx相关依赖是早已停止维护的过时组件,没有实际作用。

最优解决步骤

步骤1:清理无效依赖

删除pom.xmldependencies节点下的两行无效依赖:

<dependency>
    <groupId>org.codeartisans.javafx</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <version>1.2</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>org.codeartisans.javafx</groupId>
    <artifactId>javafx-deployer-maven-plugin</artifactId>
    <version>1.2</version>
    <scope>compile</scope>
</dependency>

步骤2:新增JavaFX启动入口类

避免直接用继承Application的类作为主类,新建启动类com.csci6461.Launcher,代码如下:

package com.csci6461;
public class Launcher {
    public static void main(String[] args) {
        // 调用你原有JavaFX主类的main方法
        ComputerSimulation.main(args);
    }
}

步骤3:修正assembly插件主类配置

修改pom.xml中maven-assembly-plugin的mainClass为新建的启动类:

<archive>
    <manifest>
        <mainClass>com.csci6461.Launcher</mainClass>
    </manifest>
</archive>

步骤4:打包运行

执行mvn clean package命令完成打包,进入target目录,运行后缀为-jar-with-dependencies.jar的文件即可:

java -jar csci6461-1.0-SNAPSHOT-jar-with-dependencies.jar

更友好的分发方案(无需用户预装JDK)

如果需要给未安装Java环境的普通用户使用,可通过javafx-maven-plugin的jlink能力生成独立运行包:

  1. 在build/plugins节点下新增插件配置:
<plugin>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <version>0.0.8</version>
    <configuration>
        <mainClass>com.csci6461.Launcher</mainClass>
        <launcher>CSCI6461模拟器</launcher>
    </configuration>
</plugin>
  1. 执行mvn clean javafx:jlink命令,生成的独立运行包在target/image目录下,windows系统双击bin/CSCI6461模拟器.bat、mac/Linux系统运行bin/CSCI6461模拟器即可直接启动,无需预装任何Java环境。

内容的提问来源于stack exchange,提问作者Ellis Thompson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:06:02