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

Eclipse项目导出.jar文件并生成.exe可执行文件的完整流程咨询

JavaFX桌面应用完整打包分步指南

前期准备

  • 确认项目使用的JDK版本与JavaFX SDK版本完全匹配,禁止跨大版本匹配(比如JDK17搭配JavaFX11)
  • 提前记录项目主类的全限定名,例:com.yourdomain.notebook.MainApp
  • 确认项目仅依赖JDK内置类与官方JavaFX组件,无其他第三方依赖

方案1:打包为带内置环境的exe安装包(无需用户预装Java,最推荐)

该方案使用Oracle官方提供的jlink+jpackage工具,对JavaFX兼容性最好,成功率最高

步骤1:导出纯项目代码jar包

在IDE中执行构建,导出仅包含你自己编写的业务代码的jar包,不要把JavaFX依赖打包进去,将导出的jar重命名为note-app.jar,放到单独的工作目录(例:D:\package-temp)

步骤2:收集JavaFX依赖库

将你使用的JavaFX SDK下lib文件夹内的所有jar文件,复制到工作目录的javafx-lib子文件夹中

步骤3:生成裁剪版自定义jre

打开命令行进入工作目录,执行以下命令,可根据项目实际使用的JavaFX模块增减--add-modules后的模块列表:

jlink --module-path javafx-lib --add-modules javafx.controls,javafx.fxml,javafx.graphics,java.base,java.prefs,java.logging --output custom-jre

执行完成后会在工作目录生成custom-jre文件夹,仅包含程序运行必须的jre组件,体积远小于完整jre

步骤4:打包为可执行安装包

继续在当前命令行执行以下命令,替换主类全限定名为你自己的项目主类:

jpackage --type exe --input . --main-jar note-app.jar --main-class com.yourdomain.notebook.MainApp --runtime-image custom-jre --name "电子日志笔记" --app-version 1.0.0 --win-dir-chooser --win-shortcut

执行完成后会在工作目录生成exe安装包,用户双击安装即可直接使用,无任何前置依赖要求

方案2:打包为跨平台可运行jar(需要用户预装对应版本JRE+JavaFX)

如果不需要做安装包,仅需要轻量的跨平台运行包,按以下步骤操作:

  • 在IDE导出可运行jar时,选择「将所有依赖提取到目标jar」选项
  • 导出完成后,针对不同系统写启动脚本,脚本内容如下:
    • Windows启动脚本(.bat文件):
    java --module-path "本地JavaFX lib目录绝对路径" --add-modules javafx.controls,javafx.fxml,javafx.graphics -jar note-app.jar
    
    • Linux/Mac启动脚本(.sh文件):
    #!/bin/bash
    java --module-path "本地JavaFX lib目录绝对路径" --add-modules javafx.controls,javafx.fxml,javafx.graphics -jar note-app.jar
    
  • 用户运行对应脚本即可启动程序,不能直接双击jar运行,缺少JavaFX启动参数会报错

常见问题排查

  • 启动提示找不到主类:检查主类全限定名拼写是否正确,jar包内META-INF/MANIFEST.MF文件中的Main-Class配置是否匹配
  • 启动提示JavaFX模块缺失:检查启动命令--add-modules后的模块列表是否覆盖了项目用到的所有JavaFX组件
  • launch4j打包失败:launch4j对高版本模块化JavaFX支持度极低,无需额外调试,直接用官方jpackage工具即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:54:02