【问题标题】:Individual File update in jar failsjar 中的单个文件更新失败
【发布时间】:2022-01-20 23:41:49
【问题描述】:

我正在关注question 更新jar 内的文件内容 并运行以下命令

jar tvf <jarfileName>

然后

jar xvf <FullFilePath>

最后

jar vuf <FolderName>/

那么这里到底发生了什么,在 jar 中我有这样的结构

Foo.jar (root directory)
/
|->/folder1
|
|->/folder2
|
|->/foo
    |
    |-->/bar
         |
         |---->/baz
               |
               |------>file1
               |------>file2
               |------>file3
               |------>file..N

上面的命令运行后,jar文件夹结构变这样

Foo.jar (root directory)
/
|
|->/foo
    |
    |-->/bar
         |
         |---->/baz
               |
               |------>file1
               

它正在删除所有内容并仅使用提取的文件和文件夹结构进行更新。

【问题讨论】:

  • 我怀疑jar vuf &lt;FolderName&gt;/ 在没有给出 jar 文件名的情况下会做任何有用的事情。对于这样的问题,准确性很重要。
  • 我必须更新 jar 文件中的单个文件。
  • 明白了。

标签: java java-8 jar


【解决方案1】:

如果您不仅限于使用 jar 命令,我将提供使用任何 zip 实用程序的解决方案之一,因为 jar 文件是一个普通的旧 zip 存档。

你可以解压到文件夹中,替换所有需要的文件,然后再打包回来。

您可以使用内部 java zip 支持或使用其他工具来处理来自 java 的 zip 文件,例如 zip4jvm

P.S. zip4jvm 是我写的

【讨论】:

    猜你喜欢
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 2012-01-01
    相关资源
    最近更新 更多