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

Gradle构建jpackage/jlink失败:prepareMergedJarsDir任务报错

Gradle jpackage/jlink构建JavaFX项目报ZipException的排查与解决

报错核心原因

prepareMergedJarsDir任务抛出java.util.zip.ZipException: zip END header not found,本质是某个Jar包损坏或不完整——Zip格式文件的END header是验证完整性的关键标识,缺失或损坏会导致无法正常读取Jar。

排查步骤

  • 检查依赖Jar完整性
    • 清理本地Gradle缓存:默认路径为~/.gradle/caches(Windows为C:\Users\<用户名>\.gradle\caches),删除项目对应缓存目录或整个caches文件夹,重新执行构建命令让Gradle重新拉取依赖。
    • 手动验证Jar:找到本地缓存或项目libs目录中的Jar文件,用解压工具(如7-Zip)尝试打开,若解压失败则说明该Jar损坏。
  • 排查本地依赖Jar:如果项目通过implementation files('libs/xxx.jar')引入本地Jar,检查这些文件是否完整、是否为合法Zip格式,排除下载中断或文件损坏的情况。
  • 核对插件与Gradle版本兼容性:确保JavaFX Gradle插件版本与当前Gradle版本匹配,避免因版本不兼容导致的依赖处理异常。
  • 检查JDK完整性:jpackage/jlink是JDK 14+特性,确认使用的JDK版本符合要求,且JDK安装包无损坏——可尝试用jar -tf <某个合法Jar>命令验证JDK的jar工具是否正常工作。

解决方案

  • 清理并刷新依赖
    执行以下命令强制清理缓存并重新下载依赖:
    ./gradlew clean build --refresh-dependencies
    
  • 替换损坏的Jar包
    若定位到损坏的依赖Jar,可手动从Maven中央仓库下载对应版本的Jar,替换到本地Gradle缓存的对应路径;或在build.gradle中指定稳定的仓库源(如MavenCentral)。
  • 调整插件与Gradle版本
    在build.gradle中指定兼容的JavaFX插件版本,示例:
    plugins {
        id 'application'
        id 'org.openjfx.javafxplugin' version '0.0.13'
    }
    
    同时核对gradle-wrapper.properties中的Gradle发行版URL,确保版本与插件兼容。
  • 修复或更换JDK
    卸载当前JDK,重新下载Oracle OpenJDK或Adoptium Temurin等官方发行版,确保安装过程无中断,环境变量JAVA_HOME配置正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 15:28:09