如何使用与之前相同的清单重新打包 jar 文件?

How to repack a jar file with same manifest it had before?

我解压了一个 jar 文件,添加了一个 filex,然后使用下面的命令将其与这个 filex 一起压缩:

jar cf jarfile input-files filex META-INF

我发现用这个新文件打包 jar 后,新的 MANIFEST 是默认文件,基本上是空的:

Manifest-Version: 1.0
Created-By: 1.8.0_40 (Sun Microsystems Inc.)

我想知道在重新打包罐子时是否有标志来指定MANIFEST

来自 here,格式为的命令:

$ jar cmf existing-manifest jar-file input-file(s)

会让您包含一个现有的清单文件。

因为jar也是zip压缩包,如果你只想把filex加到jarfile,你也可以用:

$ zip jarfile filex

另外值得一提的是,如果文件是 signed,您将破坏签名。

您可以简单地指定它:

$ jar cmf existing-manifest jar-file input-file(s)

查看 here 了解更多信息。

你也可以放上默认清单,然后修改为:

jar cfm jar-file manifest-addition input-file(s)

查看 here 了解有关修改的更多信息。

也可以不重新打包,而是使用目录,其中包含修改后的解压 jar 内容,与 jar 文件具有相同的名称。