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

Jetpack Compose Kotlin桌面项目Jar打包失败,求生成exe方法

解决Jetpack Compose桌面项目打包Jar运行失败及生成exe的方案

问题分析

错误核心是Skiko本地依赖缺失:Compose Desktop依赖JetBrains的Skia绑定库Skiko,直接打包Jar时,Windows平台所需的skiko-windows-x64.dll及校验文件未被正确纳入Jar包,导致运行时无法加载本地库。而IDE直接运行Main类时会自动处理本地依赖路径,因此可正常启动。

解决步骤

1. 修复Jar打包问题(确保Jar可正常运行)

在项目build.gradle.kts中,针对Compose启动器的Jar任务添加本地依赖打包配置:

tasks.withType<Jar> {
    if (name == "composeJar") { // 匹配你的Compose启动器Jar任务名
        from(configurations.runtimeClasspath.get().filter {
            it.name.endsWith(".dll") || it.name.endsWith(".so") || it.name.endsWith(".dylib")
        }.map { zipTree(it) })
        duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    }
}

更推荐使用Compose官方application插件替代手动Jar配置:

plugins {
    kotlin("jvm")
    id("org.jetbrains.compose") version "你的Compose版本"
    application
}

application {
    mainClass.set("你的Compose启动器Main类全路径")
}

compose.desktop {
    application {
        mainClass = "你的Compose启动器Main类全路径"
        nativeDistributions {
            targetFormats(TargetFormat.Msi) // 指定Windows安装包格式
            packageName = "BloodWebPumper"
            packageVersion = "1.1"
        }
    }
}

执行gradlew.bat composeDesktopDistribute(Windows环境),生成的带依赖Jar会在build/compose/binaries目录下。

2. 直接生成exe文件(推荐方案)

通过Compose官方的nativeDistributions配置可直接生成Windows exe安装包:

  • 确保build.gradle.kts中nativeDistributions已指定TargetFormat.Msi。
  • 执行gradlew.bat composeDesktopBuild,完成后在build/compose/binaries/native目录下获取MSI安装包,安装后即可得到可执行exe文件。
  • 如需单文件exe,添加以下配置:
nativeDistributions {
    windows {
        exe {
            isSingleFile = true // 需JDK 16+支持
        }
    }
}

3. 手动处理本地依赖(临时方案)

若暂不修改Gradle配置,可手动复制依赖文件:

  • 找到项目依赖中的skiko-windows-x64.jar,解压后取出skiko-windows-x64.dll和skiko-windows-x64.dll.sha256。
  • 将两个文件放到Jar所在目录,再执行java -jar app-1.1-COMPOSE.jar即可运行。

验证

运行生成的Jar或exe,确认无Skiko加载错误、功能正常即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 22:16:41