栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Jetpack Compose for Desktop 打包生成Windows的Msi安装包和exe可执行程序 exited with 311 code

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Jetpack Compose for Desktop 打包生成Windows的Msi安装包和exe可执行程序 exited with 311 code

创建Compose for Desktop项目, 用IDEA默认生成的代码进行打包.

打包环境:

IDEA 2021.3.3

kotlin 1.5.31

JDK jdk-15.0.2_x64(此版本打包失败, 改用jdk-16.0.2_x64成功)

Gradle 7.1.1

org.jetbrains.compose 1.0.0

Windos 10 专业版 21H2

build.gradle.kts

import org.jetbrains.compose.compose
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    kotlin("jvm") version "1.5.31"
    id("org.jetbrains.compose") version "1.0.0"
}

group = "me.zhou"
version = "1.0"

repositories {
    google()
    mavenCentral()
    maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
}

dependencies {
    implementation(compose.desktop.currentOs)
}

tasks.withType {
    kotlinOptions.jvmTarget = "11"
}

compose.desktop {
    application {
        mainClass = "MainKt"
        nativeDistributions {
            targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
            packageName = "ComposeTest"
            packageVersion = "1.0.0"
        }
    }
}


开始打Windows的Msi安装包

打包过程中要下载wix311工具集:

WiX 工具集从 XML 源代码构建 Windows 安装包。该工具集支持命令行环境,开发人员可以将该环境集成到其生成过程中,以生成 Windows 安装程序 (MSI) 包和可执行捆绑包。此文件33MB, 如果IDEA下载缓慢或下载失败, 可以先停止打包, 根据窗口中提示的链接直接手动下载, 然后复制到项目的buildwixToolset文件夹中, 改名为wix311.zip, 重新启动打包任务后会自动解压缩该文件.


下载完wix311工具集, 开始打包时出现下面的错误:

jpackage-2022-03-26-12-41-34-err.txt内容如下:

WARNING: Using incubator modules: jdk.incubator.jpackage
java.io.IOException: Command [light.exe, -nologo, -spdb, -ext, WixUtilExtension, -out, D:IDEAProjectComposeTestbuildcomposebinariesmainmsiComposeTest-1.0.0.msi, -sice:ICE27, -ext, WixUIExtension, -loc, C:UserszhouAppDataLocalTempjdk.incubator.jpackage1734708973061270175configMsiInstallerStrings_en.wxl, -b, C:UserszhouAppDataLocalTempjdk.incubator.jpackage1734708973061270175config, C:UserszhouAppDataLocalTempjdk.incubator.jpackage1734708973061270175wixobjmain.wixobj, C:UserszhouAppDataLocalTempjdk.incubator.jpackage1734708973061270175wixobjbundle.wixobj]in C:UserszhouAppDataLocalTempjdk.incubator.jpackage1734708973061270175imageswin-msi.imageComposeTest exited with 311 code

在百度、谷歌搜索了半天没有找到相关的解决方案, 资料也极少。
后面来到JetBrains compose-jb项目(Compose for Desktop就是JetBrains公司主导的,联合谷歌的Jetpack Compose开发而成),在项目的issues中找到了一条跟上面错误吻合的内容。
https://github.com/JetBrains/compose-jb



跟着上面的解决方法把java JDK升级为17, 但是项目的Gradle版本是7.1.1, JDK17需要Gradle7.3.3,在项目中没有找到修改Gradle版本的地方(可以去Gradle官方找方法),就把JDK17降到jdk-16.0.2_x64试试。


JDK16打包成功了, 被这问题困扰了好几个小时, 终于得到解决。

开始安装并运行


目录说明:

app 程序运行需要的jar包和资源runtime java运行时环境(经过提取精简过的, 正常的运行时环境约200M大小) 打包EXE可只执行程序, build.gradle.kts中增加打包目标格式TargetFormat.Exe

刷新gradle后会多出一个packageExe的任务, 后面的操作步骤跟打包Msi一致

在Windos 10 专业版 21H2中运行失败, 没有任何提示:

在Window 7 专业版 64位运行效果如下, 也是一个安装程序:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781304.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号