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

使用Compose Multiplatform构建可执行JAR文件报错

错误根因

报错是Compose编译器与Kotlin版本不匹配导致的。手动通过IDEA的JAR工件向导从jvmMain构建包时,不会自动对齐Compose Multiplatform要求的编译器版本、依赖链路,不仅容易触发这类兼容错误,手动配置的工件还经常漏带运行时依赖,就算构建完成也无法正常启动。

正确构建可执行JAR的方法

不要手动创建IDEA JAR工件,直接使用Gradle配置官方支持的打包任务,步骤如下:

  • 第一步:对齐版本
    先确认项目根目录build.gradle.kts中引入的Compose Multiplatform插件版本和Kotlin版本是官方匹配的组合,禁止单独升级Kotlin或Compose插件版本,二者的对应关系随Compose Multiplatform发布说明同步更新。
    注意:Compose Multiplatform不需要手动单独引入androidx.compose.compiler依赖,如果你之前手动加过相关compiler配置,直接删掉,版本由Compose Multiplatform插件自动管理。
  • 第二步:配置JVM打包参数
    打开JVM模块对应的build.gradle.kts(单模块JVM项目直接改根目录的构建脚本),先指定程序入口类,再配置胖JAR打包规则:
    compose {
        jvm {
            // 替换为你自己项目的入口类全限定名
            mainClass = "com.your.package.MainKt"
        }
    }
    
    tasks.jar {
        manifest {
            attributes["Main-Class"] = "com.your.package.MainKt"
        }
        // 将所有运行时依赖打入单个JAR
        from(configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) }) {
            exclude("META-INF/*.SF", "META-INF/*.DSA", "META-INF/*.RSA")
        }
        duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    }
    
  • 第三步:执行构建
    不需要走IDEA的工件构建流程,直接在终端执行Gradle命令:
    ./gradlew jvmJar
    
    构建完成的可执行JAR存放在jvm/build/libs/目录下,直接运行java -jar 生成的jar文件名.jar即可启动。
残留报错排查

如果配置完成后还是出现编译器不兼容的报错,按顺序操作:

  1. 打开IDEA菜单File -> Invalidate Caches...,勾选清除缓存后重启IDE
  2. 删除项目根目录下的.gradle文件夹,重新同步Gradle依赖
  3. 确认构建使用的JDK版本为17及以上,Compose Multiplatform 1.5+版本最低要求JDK17作为构建环境

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 08:31:09