未找到 IntelliJ 编译错误 zip END 标头

J. *_*dar 23 java intellij-idea

问题

我无法在 Java 9 和 10 上的 IntelliJ build 182.4505.22 上为导入的 Eclipse 项目编译 Java 代码。编译模块或任何单个文件时显示以下错误:

Error:(1, 1) java: cannot access edu.wit.cs.comp2000

zip END header not found
Run Code Online (Sandbox Code Playgroud)

细节

该项目的结构如下: IntelliJ项目结构

完整的编译时输出如下: 在此处输入图片说明

已经尝试过

我已经查看了此处此处的帖子,但未提供任何相关详细信息。我尝试在 Java 9 和 10 上进行编译,这没什么区别。我已经在 LinkedBag 中编写了一个 main 方法,并试图独立于 JUnit 运行它,这导致了同样的错误。IntelliJ 没有在我的测试类中正确显示测试图标,所以我怀疑 JUnit(或缺少 JUnit)是问题的原因,但是我不确定如何继续。编译适用于其他项目(没有 JUnit 测试)就好了。

更新

  • 该代码似乎在 Java 1.8 上按预期编译和测试没有问题。每次切换到 Java 9 或 10 都会导致上述问题。我开始怀疑我的导师的一个依赖项特别需要 Java 1.8,但是如果有人可能有解决方案,我仍然希望使用较新版本的 Java。

Ful*_*aco 36

如上所述,只需删除损坏的缓存并重新启动 Intellij。

在命令行中运行 gradle 可以帮助您了解应该删除的内容。例如:

$ ./gradlew --version
Could not unzip /home/cesarc/.gradle/wrapper/dists/gradle-5.6.2-all/9st6wgf78h16so49nn74lgtbb/gradle-5.6.2-all.zip to /home/cesarc/.gradle/wrapper/dists/gradle-5.6.2-all/9st6wgf78h16so49nn74lgtbb.
Reason: error in opening zip file
Run Code Online (Sandbox Code Playgroud)

删除文件夹 /home/cesarc/.gradle/wrapper/dists/gradle-5.6.2-all/9st6wgf78h16so49nn74lgtbb 后,问题解决了:

$ ./gradlew --version
Downloading https://services.gradle.org/distributions/gradle-5.6.2-all.zip
......
Run Code Online (Sandbox Code Playgroud)

  • 如果删除不能解决问题,您可能需要手动下载该文件并将其放入文件夹中。至少那是我必须做的。 (2认同)
  • 在 Windows 中,只需删除 C:\Users\YOUR_USERNAME\.gradle\wrapper\dists\THE_CORRUPTED_VERSION (2认同)

小智 13

就我而言,它是: /.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/9.0.41/tomcat-embed-core-9.0.41.jar 我刚刚删除了它,我能够编译我的代码。只需注意您的情况下的 .jar 文件,它会给出错误。只需将其移除即可。


Roc*_*ver 7

我在我的 mac 中遇到了类似的问题。我刚刚删除了 .m2 存储库并再次进行了 maven clean install 工作。


小智 6

当 Idea 下载项目依赖项时互联网连接断开时,我们遇到了这个问题。我们通过从缓存中删除损坏的文件来解决它。缓存位置取决于您的构建工具,例如,对于 Maven ~/.mvn,它在~/.gradle.

  • 为此+1。我在项目中使用 Maven,而不是 Gradle。要清除 Maven 缓存,必须删除 `~/.m2/repository` 目录 (7认同)

小智 6

您可以使用 GNU utils 在本地扫描它以查找错误的 jar 文件,而不是删除整个 Maven 存储库

find <maven-repository-dir> -type f -name "*.jar" -exec zip -T {} \; grep -v OK
Run Code Online (Sandbox Code Playgroud)


mal*_*dis -1

thymeleaf-extras-springsecurity4当我在org.thymeleaf.extrasSpring Boot 应用程序中使用依赖项时,我遇到了类似的问题。

将依赖项更新到最新版本有帮助。