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

Gradle如何配置Main Manifest属性解决可执行jar找不到主类问题

可执行Jar包找不到主类问题解决方案

核心配置规则(Manifest.MF强制要求)

  • Main-Class取值仅需填写主类全限定名,禁止加.class后缀:如主类在com.example包下,正确写法为Main-Class: com.example.Main,你尝试的<包名>.Main.class写法本身不符合规范
  • 配置行冒号后必须紧跟1个空格:Main-Class:Main属于错误写法,空格不可省略
  • 整个Manifest文件末尾必须保留1个空行,否则所有配置不会被JVM识别,这是绝大多数配置不生效的隐藏原因

必做排查步骤

  • 解压生成的jar包,首先查看META-INF/MANIFEST.MF文件,确认配置符合上述规则
  • 检查jar包内目录结构与主类包路径是否匹配:如主类全限定名为com.example.Main,jar包根目录下必须存在com/example/Main.class文件,打包时若误将源码目录、模块名打包进根目录导致路径错位,会直接触发找不到主类错误
  • 确认主类存在符合规范的main方法:签名必须为public static void main(String[] args),缺少任一修饰符都会被判定为非法主类

常见打包工具的正确配置示例

Maven(maven-jar-plugin)

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.2.2</version>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.example.Main</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>

Gradle

jar {
    manifest {
        attributes 'Main-Class': 'com.example.Main'
    }
}

IDEA 手动打包

  1. 依次打开File -> Project Structure -> Artifacts
  2. 点击+号选择JAR -> From modules with dependencies
  3. 主类选择直接点击右侧文件夹图标选中对应Main类,无需手动输入
  4. 构建完成后按上述排查步骤校验配置即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:45:10