【问题标题】:Java: Deleting directories with contents from Zip/Jar fileJava:从 Zip/Jar 文件中删除包含内容的目录
【发布时间】:2015-08-22 19:12:37
【问题描述】:

我对使用 Java 中的 Zip 文件完全陌生。基本上,我必须删除包含所有内容的 Jar 文件(Zip 格式)中的目录。我将如何继续这样做?我尝试在 Google 上搜索了一段时间,但似乎找不到易于理解的示例或指南。由于我是该主题的新手,因此我需要学习代码。

另外,重要的是我不能解压缩和压缩 Jar,因为它包含超过 1700 个文件,并且提取/压缩所有内容的过程需要一些时间。

目录结构如下:

MyJarFile.jar
├─ <DIR> assets
├─ <DIR> net
├─ <DIR> META-INF
│  ├─ MANIFEST.MF
│  ├─ MOJANGCS.RSA
│  └─ MOJANGCS.SF
├─ File1
├─ File2
├─ ...

我需要从 Jar 文件中删除 META-INF 以及其中的内容,但我不知道该怎么做以及从哪里开始。对这个有帮助吗?

此致
- 图片2910

【问题讨论】:

  • @MarkElliot 我找到了,但我还需要找到一个不先解压缩文件的解决方案。 Jar 中有超过 1700 个文件,因此需要很长时间。我的意思是,它可以用所有其他编程语言完成,所以我敢打赌一定有办法。
  • 链接问题中票数最高的答案提供了一种无需解压缩即可执行此操作的方法,为什么这对您来说还不够?
  • @MarkElliot 因为我以前几乎没有使用过 Zips,所以我可以举一个例子。我从示例中学习得更好,尤其是当您提到的帖子具有相当复杂的过程时。
  • 特别是,您的问题声称您“尝试搜索 google 很长一段时间,但似乎找不到解决方案、指南或示例”。投票最多的答案只是一个例子。第二个响应提供了一些与 zip 文件交互的示例代码。您可以通过表明您已找到此解决方案,但正在努力实施......以及您正在努力解决的具体问题,从而大大完善了您的问题。

标签: java zip


【解决方案1】:

删除 jar 中的文件的过程:

magallanes:prueba_extraer_jar coti$ jar tf EjemploDebugger.jar 
META-INF/INDEX.LIST
META-INF/
META-INF/MANIFEST.MF
ejemplodebugger/
ejemplodebugger/CalculadorDeNumerosPrimos.class
ejemplodebugger/EjemploDebugger.class
src/ejemplodebugger/CalculadorDeNumerosPrimos.java
src/ejemplodebugger/EjemploDebugger.java
magallanes:prueba_extraer_jar coti$ zip -d EjemploDebugger.jar src/ejemplodebugger/CalculadorDeNumerosPrimos.java
deleting: src/ejemplodebugger/CalculadorDeNumerosPrimos.java
magallanes:prueba_extraer_jar coti$ jar tf EjemploDebugger.jar 
META-INF/INDEX.LIST
META-INF/
META-INF/MANIFEST.MF
ejemplodebugger/
ejemplodebugger/CalculadorDeNumerosPrimos.class
ejemplodebugger/EjemploDebugger.class
src/ejemplodebugger/EjemploDebugger.java
magallanes:prueba_extraer_jar coti$ 

这显示了我用来从先前创建的 jar 中删除一个 Java 文件的代码。由于已删除的文件 (CalculadorDeNumerosPrimos.java) 位于 src/ejemplodebugger 中,因此我必须预先添加路径。删除文件后,我会再次显示 jar 的内容以便能够检查。

【讨论】:

    猜你喜欢
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    相关资源
    最近更新 更多