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

如何为Kotlin Multiplatform项目生成.exe文件?执行Gradle命令报错

解决方法:生成Compose Desktop的.exe安装包

为什么gradle nativeBinaries会报错?

你的项目是基于**Compose Desktop(JVM目标)**的Kotlin多平台项目,nativeBinaries是纯Kotlin/Native项目专属的Gradle任务——而你的项目里并没有配置Kotlin/Native的桌面目标(比如mingwX64),所以Gradle找不到这个任务。

生成.exe安装包的正确操作

你的项目已经配置了compose.desktop模块,只需要调整配置并执行对应Gradle任务即可:

1. 确认Windows目标格式(可选)

在compose.desktop的nativeDistributions块中,已经包含了TargetFormat.Msi(Windows安装包)。如果需要生成单文件.exe程序,可以添加TargetFormat.Exe:

compose.desktop {
    application {
        mainClass = "MainKt"

        nativeDistributions {
            // 同时支持Mac、Windows、Linux的分发格式
            targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb, TargetFormat.Exe)
            packageName = "com.<ProjectName>"
            packageVersion = "1.0.0"
            
            // 可选:配置Windows专属参数,比如开始菜单分组、创建快捷方式
            windows {
                menuGroup = "你的应用名称"
                shortcut = true
            }
        }
    }
}

2. 执行Gradle任务生成文件

根据你需要的构建类型,运行对应的命令:

  • 生成Release版本的.exe/msi:
    ./gradlew packageDesktopReleaseDistributionForCurrentOS
    
  • 生成Debug版本的.exe/msi:
    ./gradlew packageDesktopDebugDistributionForCurrentOS
    

3. 找到生成的文件

生成的程序和安装包会存放在项目目录的build/compose/binaries/desktop路径下:

  • 单文件.exe程序:build/compose/binaries/desktop/<buildType>/(<buildType>是release或debug)
  • .msi安装包:build/compose/binaries/desktop/<buildType>/installer/

额外说明:如果要使用纯Kotlin/Native桌面目标

如果你确实想基于Kotlin/Native而非JVM开发桌面程序(注意这种方式不支持Compose UI),需要在kotlin块中添加Windows原生目标:

kotlin {
    // 保留你现有的其他目标(wasmJs、androidTarget等)
    mingwX64("nativeDesktop") {
        binaries.executable {
            entryPoint = "main" // 指定程序入口函数
        }
    }
}

配置完成后,就可以执行gradle nativeDesktopBinaries任务来生成原生程序了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 04:02:32