当前位置: 首页 > wzjs >正文

自己用自己电脑做网站空间河北建筑工程学院招生信息网

自己用自己电脑做网站空间,河北建筑工程学院招生信息网,站长工具同大全站,网站设计介绍怎么写前言 在 Java 项目构建或运行过程中,开发者常会遇到 java.util.zip.ZipException: zip END header not found 错误。这一异常通常与 JAR 文件损坏、下载不完整、编码问题或 Maven 依赖管理配置不当有关。 一、问题本质:JAR 文件损坏或 ZIP 格式异常 1…

前言

在 Java 项目构建或运行过程中,开发者常会遇到 java.util.zip.ZipException: zip END header not found 错误。这一异常通常与 JAR 文件损坏、下载不完整、编码问题或 Maven 依赖管理配置不当有关。

一、问题本质:JAR 文件损坏或 ZIP 格式异常

1.1 ZIP 文件结构简析

ZIP 文件由多个 条目(Entry) 组成,每个条目包含:

  • 本地文件头(Local File Header):记录文件元数据(如文件名、压缩算法)。
  • 文件数据(File Data):实际压缩后的文件内容。
  • 中央目录项(Central Directory Entry):汇总所有条目信息。
  • 结束标记(END of Central Directory Record):标识 ZIP 文件的结尾。

ZipFileZipInputStream 在读取 ZIP 文件时发现 缺失 END 标记,便会抛出 ZipException

1.2 常见触发场景

场景描述示例错误日志
JAR 文件损坏下载中断或存储异常导致文件不完整java.util.zip.ZipException: zip END header not found
编码问题中文文件名未使用正确字符集解析java.lang.IllegalArgumentException: MALFORMED
ZIP64 格式支持不足大文件超出标准 ZIP 格式限制invalid zip64 extra data field size
依赖冲突多个版本的依赖共存导致类路径冲突ClassCastExceptionNoClassDefFoundError

二、成因分析与解决方案

2.1 场景 1:JAR 文件损坏

成因
  • 网络中断:Maven 从远程仓库(如阿里云镜像)下载 JAR 时,因网络波动导致文件未完全写入。
  • 镜像仓库问题:第三方镜像仓库(如阿里云、华为云)提供损坏的 JAR 文件。
  • 磁盘空间不足:本地仓库目录空间不足,导致文件写入失败。
解决方案

步骤 1:删除本地仓库中的损坏文件

# Windows
rm -rf ~/.m2/repository/com/konghq/unirest-java/3.14.5/# Linux/macOS
rm -rf ~/.m2/repository/com/konghq/unirest-java/3.14.5/

步骤 2:强制重新下载依赖

mvn dependency:purge-local-repository clean install -U

步骤 3:手动下载并替换 JAR 文件

  1. 从 Maven Central 获取正确版本的 JAR 文件。
  2. 替换到本地仓库路径:
    cp unirest-java-3.14.5.jar ~/.m2/repository/com/konghq/unirest-java/3.14.5/
    

验证校验值
使用 SHA1 校验文件完整性:

certutil -hashfile unirest-java-3.14.5.jar SHA1

2.2 场景 2:编码问题导致 ZIP 解析失败

成因
  • ZIP 文件中的中文文件名使用 GBK 编码,而 Java 默认使用 UTF-8 解析。
解决方案

代码示例:指定字符集解析 ZIP 文件

import java.io.FileInputStream;
import java.nio.charset.Charset;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;public class ZipHandler {public static void main(String[] args) throws Exception {String zipFilePath = "path/to/your/file.zip";try (FileInputStream fis = new FileInputStream(zipFilePath);ZipInputStream zis = new ZipInputStream(fis, Charset.forName("GBK"))) {  // 指定 GBK 编码ZipEntry entry;while ((entry = zis.getNextEntry()) != null) {System.out.println("Entry: " + entry.getName());// 处理文件内容...}}}
}

Maven 依赖管理
若需处理中文文件名的依赖(如 Spring Boot 项目),确保依赖的 JAR 文件本身无编码问题。


2.3 场景 3:ZIP64 格式支持不足

成因
  • 文件大小超过 4GB(ZIP 标准限制),导致使用 ZIP64 扩展格式。
  • 旧版 JDK(如 Java 7)或 Maven 插件不支持 ZIP64。
解决方案

升级 JDK
使用 Java 8 或更高版本,支持 ZIP64 格式:

# 检查 JDK 版本
java -version

配置 Maven 支持大文件
settings.xml 中启用 ZIP64 支持:

<systemProperties><net.java.dev.jna.zip64.enabled>true</net.java.dev.jna.zip64.enabled>
</systemProperties>

使用 Apache Commons Compress
替代 java.util.zip,支持 ZIP64:

<dependency><groupId>org.apache.commons</groupId><artifactId>commons-compress</artifactId><version>1.21</version>
</dependency>

代码示例

import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipFile;public class Zip64Handler {public static void main(String[] args) throws Exception {String zipFilePath = "path/to/large-file.zip";try (ZipFile zipFile = new ZipFile(zipFilePath)) {for (ZipArchiveEntry entry : zipFile.getEntries()) {System.out.println("Entry: " + entry.getName());}}}
}

2.4 场景 4:依赖冲突导致类路径异常

成因
  • 多个依赖引入相同库的不同版本(如 com.mashape.unirest:unirest-javacom.konghq:unirest-java)。
  • 依赖传递性导致版本不一致。
解决方案

排除冲突依赖
pom.xml 中显式排除旧版依赖:

<dependency><groupId>third-party-group</groupId><artifactId>third-party-lib</artifactId><version>1.0.0</version><exclusions><exclusion><groupId>com.mashape.unirest</groupId><artifactId>unirest-java</artifactId></exclusion></exclusions>
</dependency>

统一依赖管理
使用 dependencyManagement 强制版本一致性:

<dependencyManagement><dependencies><dependency><groupId>com.konghq</groupId><artifactId>unirest-java</artifactId><version>3.14.5</version></dependency></dependencies>
</dependencyManagement><dependencies><dependency><groupId>com.konghq</groupId><artifactId>unirest-java</artifactId></dependency>
</dependencies>

三、高级技巧与最佳实践

3.1 Maven 镜像优化

切换镜像仓库
避免使用可能损坏的镜像,优先使用官方仓库:

<mirrors><mirror><id>central</id><url>https://repo1.maven.org/maven2</url><mirrorOf>central</mirrorOf></mirror>
</mirrors>

镜像覆盖策略
若需使用第三方镜像,建议覆盖所有仓库:

<mirror><id>aliyunmaven</id><url>https://maven.aliyun.com/repository/public</url><mirrorOf>*</mirrorOf>
</mirror>

3.2 依赖校验工具

Maven Enforcer Plugin
禁止特定版本的依赖:

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-enforcer-plugin</artifactId><version>3.0.0</version><executions><execution><id>enforce-banned-dependencies</id><goals><goal>enforce</goal></goals><configuration><rules><bannedDependencies><excludes><exclude>com.mashape.unirest:unirest-java</exclude></excludes></bannedDependencies></rules></configuration></execution></executions>
</plugin>

3.3 日志与调试

打印依赖树
定位冲突依赖:

mvn dependency:tree

检查文件完整性
使用 jar 命令验证 JAR 文件:

jar tf unirest-java-3.14.5.jar

四、总结

问题类型原因解决方案
JAR 文件损坏网络中断、镜像问题删除本地缓存,强制重新下载
编码问题中文文件名乱码指定字符集解析 ZIP 文件
ZIP64 支持不足文件过大升级 JDK,使用 Apache Commons Compress
依赖冲突多个版本共存排除旧版依赖,统一版本管理

文章转载自:

http://ThY4szMm.synkr.cn
http://fL4Qxld5.synkr.cn
http://SRO46cnD.synkr.cn
http://BassbCRs.synkr.cn
http://nP4vQ7MC.synkr.cn
http://pVatdeWP.synkr.cn
http://PbXRVjXD.synkr.cn
http://EzCdSs7J.synkr.cn
http://lyzSEHiF.synkr.cn
http://gPZ43vCg.synkr.cn
http://Xi9DVrh7.synkr.cn
http://R6O1TYs0.synkr.cn
http://aBZwwUdz.synkr.cn
http://aPZ2XEK8.synkr.cn
http://qJeLvCV6.synkr.cn
http://8eZebY7W.synkr.cn
http://PNQGmJiX.synkr.cn
http://inDXTs8R.synkr.cn
http://cKlifdCz.synkr.cn
http://N3EZXjqg.synkr.cn
http://jYgusniF.synkr.cn
http://rxHNneo3.synkr.cn
http://uaYkcqyj.synkr.cn
http://qrvBGEhF.synkr.cn
http://NrgqlsuB.synkr.cn
http://pF00w9mq.synkr.cn
http://cv5a2sm7.synkr.cn
http://2N8OLqQO.synkr.cn
http://RiM4kUL6.synkr.cn
http://2m6LMBIv.synkr.cn
http://www.dtcms.com/wzjs/764052.html

相关文章:

  • 肯德基网站建设的目标昆明手机网站推荐
  • 网站建设合同 附件域名领域
  • 网站建设 盘网互联一二三四免费观看视频中文版在线
  • 长沙企业建站系统免费创建手机网站
  • 旅游网站建设推广关于咖啡厅网站建设的论文
  • 烟台做网站找哪家好中国电子商务网站建设
  • 网站创建快捷方式网页制作大作业
  • 简洁手机导航网站模板下载安装企业网站建设平台的功能
  • 做网站的软件page怎样提升网站流量
  • 建设网站技术公司简介带商城的wordpress
  • 网站建设需要哪些常用技术免费自助建设网站
  • soho设计网站网站的毕业设计怎么做
  • 苏州地产网站建设肇庆网站制作费用
  • 男女做网站网页模板的作用
  • 2017山亭区建设局网站做的不错的网站
  • 网站开发数据库有关合同手机app软件开发公司排名
  • 视频网站如何做推广凌河建设网站
  • 哪个网站可以做设计赚钱上海专业做网站较好的公司有哪些
  • 点读软件网站建设昆明专业建站
  • php做电商网站开题报告东台做网站的
  • 阿里云部署多个网站培训行业门户网站建设
  • 沈阳网站建设渠道公司装修效果图办公室
  • wordpress精致建站连江县住房和城乡建设局网站
  • 网站审批号学网站开发和游戏开发那个
  • j昆明网站制作公司温州网站建设公司有哪些
  • 搜索大全引擎入口网站wordpress 分享 插件下载地址
  • 母婴类网站 网站建设方案书 备案做网站什么程序好
  • 中山最好的网站建设公司哪家好网站建设 seojsc
  • 初创业公司做网站网站底部代码特效
  • 南京做网站的网络公司photoshop中文版免费下载