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

JavaFX打包exe运行提示Main类未找到 启动JVM失败IDE可正常运行

问题原因

com/abstudio/printersreports/Launcher not found -Failed to launch JVM报错的本质是JVM启动时,无法在exe指定的类路径下找到你配置的主类,常见诱因如下:

  • Gradle默认jar任务仅打包项目自身的class文件,不会将第三方依赖(jfoenix、mysql驱动等)一同打包,也没有在manifest中指定依赖的加载路径,导致主类依赖的运行环境缺失,连带主类加载失败
  • IDEA Artifacts配置错误,构建时未将项目编译后的class文件、依赖jar包正确放置到输出目录,或主类配置未生效
  • JDK版本不匹配:你配置的sourceCompatibility是JDK1.8,如果打包exe时绑定的JRE版本高于1.8,或用到的JavaFX相关组件和JRE版本不兼容,也会触发主类加载失败
  • exe打包工具(launch4j/exe4j等)配置错误,未正确指定主类全限定名、jar包路径或类搜索路径
解决方案

步骤1:修改Gradle配置生成可执行胖jar

优先用shadow插件打包包含所有依赖的单体jar,先确认jar本身可正常运行再打包exe:

  1. 在plugins块中添加shadow插件适配JDK8:
plugins {
    id 'java'
    id 'application'
    id 'idea'
    id 'com.github.johnrengelman.shadow' version '7.1.2'
}
  1. 新增shadowJar配置替换原有jar配置:
shadowJar {
    manifest {
        attributes(
                'Main-Class': 'com.abstudio.printersreports.Launcher'
        )
    }
    mergeServiceFiles() // 解决第三方依赖的服务配置文件冲突
}
  1. 运行gradlew shadowJar命令,在build/libs目录下会生成带-all后缀的胖jar,双击运行确认可正常启动后再进行后续exe打包。

步骤2:修正IDEA Artifacts配置

如果坚持使用IDEA的Artifacts构建:

  1. 打开File -> Project Structure -> Artifacts,选择当前的jar配置
  2. 确保Output Layout标签页下,已将compile output和所有依赖的library都添加到了jar的根目录下
  3. 确认Manifest的主类配置为com.abstudio.printersreports.Launcher,Manifest文件路径正确指向src/main/resources/META-INF/MANIFEST.MF

步骤3:校验exe打包配置

  • 确认打包时绑定的JRE版本为1.8,和项目编译版本一致
  • 类路径配置中正确选择生成的胖jar,主类填写完整全限定名com.abstudio.printersreports.Launcher
  • 如果是将JRE和exe一同打包分发,确保JRE目录结构完整,没有缺失核心类库

内容的提问来源于stack exchange,提问作者Armin Brkić

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:36:04