1

我正在尝试更新Kitchen.jar文件,但更新后它拒绝工作。这是我所做的:

$ jar xf Kitchen.jar
$ jar uf Kitchen.jar com/package/Toster.class

一切看起来都不错。opendiff(以及jar tf)显示没有区别,但是文件大小不同 1008 字节。二进制比较显示大约 700 个差异。罐子不再起作用了。

如您所见,我没有更改任何文件,我只是进行了提取并使用原始未触及的类文件更新了 jar 文件。

我在 SO 上看到过类似的问题,但没有回答,因为我的结构没有改变。

原始清单有这个:

Created-By: 1.7.0_05-b05 (Oracle Corporation)

虽然我有:

$ javac -version
javac 1.7.0_17

不得不说(但不确定这是否相关)我试图修改的 Jar 文件是 Eclipse IDE 插件的一部分。

我有两个想法:

  1. 这是因为我在 Mac 上,而原始 jar 是在不同平台上创建的。
  2. 这是因为在创建包时定义了一些java 运行时变量(jar 的 -J 选项)。

这让我觉得我要么需要找到它创建的平台并尝试在那里打包它,要么找出在打包操作期间定义的-J -options。可能吗?如何?

4

0 回答 0