【问题标题】:"java.util.zip.ZipException: error in opening zip file" when trying to create a new JarFile尝试创建新 JarFile 时出现“java.util.zip.ZipException:打开 zip 文件时出错”
【发布时间】:2018-02-16 05:19:57
【问题描述】:

我正在尝试使用现有的 File 对象创建一个新的 JarFile,但我不断收到 java.util.zip.ZipException:打开 zip 文件时出错。

我正在运行下面的代码:

    File x= new File("C:/Users/Priyanka/Documents/hello.java");
    JarFile jarF = new JarFile(x);

当我运行上面的代码时,我不断收到以下错误:

Exception in thread "main" java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(Unknown Source)
at java.util.zip.ZipFile.<init>(Unknown Source)
at java.util.jar.JarFile.<init>(Unknown Source)
at java.util.jar.JarFile.<init>(Unknown Source)
at prioritization.cfg.Test1.main(Test1.java:12)

我已经在不同的机器和不同版本的 eclipse 上尝试过这段代码,但我一直遇到同样的问题。

我已尝试在线研究该问题,但大多数解决方案都是关于尝试打开现有的 .jar 文件。

任何帮助将不胜感激。

【问题讨论】:

    标签: java eclipse jar zipexception


    【解决方案1】:

    如果您检查 JavaDoc 中的 JarFile 类型,您会发现它用于读取现有的 .jar 文件。

    JarFile 类用于从任意位置读取 jar 文件的内容 可以使用 java.io.RandomAccessFile 打开的文件。 - https://docs.oracle.com/javase/9/docs/api/java/util/jar/JarFile.html

    要创建.jar 文件,您需要使用java.util.jar.JarOutputStream

    【讨论】:

    • 我明白了,但我正在尝试先创建一个 JarFile,然后我想阅读它。像这样的东西:JarFile jarFile = null; jarFile = 新的 JarFile(文件); jarEntry jarEntry = jarFile.getJarEntry(String); if (jarEntry != null) { return jarFile.getInputStream(jarEntry); }
    • 实例化一个新的JarFile对象不会创建一个底层jar文件
    猜你喜欢
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 2012-06-20
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    相关资源
    最近更新 更多