Kotlin Multiplatform构建desktopApp时packageDistribution任务失败求助
解决jlink.exe执行报错:--module-path未指定且该运行时镜像不包含jmods目录
针对你遇到的desktopApp:packageDistributionForCurrentOS任务失败问题,核心原因是jlink工具无法找到JDK的jmods目录(JRE没有这个目录,必须用完整JDK),以下是具体解决步骤:
确认使用完整JDK而非JRE
检查JAVA_HOME环境变量是否指向完整JDK的根目录(比如C:\Program Files\Java\jdk-17.0.6),JRE不包含jmods文件夹,会直接导致jlink报错。在Gradle中显式指定JDK路径
可以通过两种方式配置:- 项目根目录的
gradle.properties中添加:org.gradle.java.home=C:/Program Files/Java/jdk-17.0.6 - 在desktop模块的
build.gradle.kts里的nativeDistributions配置中指定runtimeJdk:compose.desktop { application { mainClass = "你的主类全路径" nativeDistributions { runtimeJdk.set(file("C:/Program Files/Java/jdk-17.0.6")) // 其他分发配置 } } }
- 项目根目录的
修正IDE的Gradle JVM配置
在IntelliJ中打开File > Settings > Build, Execution, Deployment > Build Tools > Gradle,确保Gradle JVM选择的是完整JDK,而非JRE。彻底清理Gradle缓存
执行命令:gradlew.bat clean build --no-build-cache或者手动删除用户目录下的
.gradle/caches文件夹,避免缓存的错误配置影响构建。验证JDK完整性
打开JDK根目录,确认存在jmods文件夹且包含java.base.jmod等模块文件。如果缺失,重新下载安装官方JDK(比如Adoptium、Oracle OpenJDK)。
内容的提问来源于stack exchange,提问作者Android Netbee
相关产品推荐
相关产品推荐

