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

Kotlin可执行JAR报no main manifest attribute错误的解决咨询

解决Kotlin可执行JAR的no main manifest attribute问题

方法一:修正IntelliJ IDEA构件配置

你的问题大概率是清单文件位置错误或构件配置未正确关联自定义清单,按以下步骤重新配置:

  • 打开File -> Project Structure(快捷键Cmd + ;),切换到Artifacts标签页
  • 删除现有JAR构件,点击+ -> JAR -> From modules with dependencies
  • 在弹出窗口中:
    1. 点击Main Class右侧的选择按钮,选中MainKt(Kotlin顶层主函数会编译为该类)
    2. 在Manifest file区域,选择Create new manifest,并将路径指定为src/main/resources/META-INF/MANIFEST.MF(注意必须放在META-INF目录下,直接放在resources根目录会被构建忽略)
    3. 勾选Include in project build选项
  • 点击OK保存配置,重新执行Build -> Build Artifacts... -> Build

构建完成后,打开JAR文件检查META-INF/MANIFEST.MF,确认包含Main-Class: MainKt属性,再运行java -jar your-jar-file.jar即可。

方法二:用Gradle构建(更可靠,推荐)

Kotlin项目默认使用Gradle,直接通过配置脚本构建可避免IDE配置问题:

  1. 打开项目根目录的build.gradle.kts,添加以下配置:
plugins {
    kotlin("jvm") version "1.9.20"
    application // 启用应用插件
}

application {
    mainClass.set("MainKt") // 指定主类
}

// 构建包含依赖的可执行JAR(Fat Jar)
tasks.jar {
    manifest {
        attributes["Main-Class"] = "MainKt"
    }
    from(sourceSets.main.get().output)
    dependsOn(configurations.runtimeClasspath)
    from({
        configurations.runtimeClasspath.get()
            .filter { it.name.endsWith("jar") }
            .map { zipTree(it) }
    })
}
  1. 在终端执行命令:
./gradlew jar
  1. 生成的JAR文件位于build/libs/目录下,直接运行java -jar build/libs/your-project-name.jar即可。

如果需要更简洁的Fat Jar构建,可使用Shadow插件:

  • 在build.gradle.kts中添加Shadow插件:
plugins {
    id("com.github.johnrengelman.shadow") version "8.1.1"
}

shadowJar {
    manifest {
        attributes["Main-Class"] = "MainKt"
    }
}
  • 执行./gradlew shadowJar,生成的Fat Jar在build/libs/目录下(文件名带-all后缀)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 07:00:15