我正在尝试更新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 插件的一部分。
我有两个想法:
- 这是因为我在 Mac 上,而原始 jar 是在不同平台上创建的。
- 这是因为在创建包时定义了一些java 运行时变量(jar 的 -J 选项)。
这让我觉得我要么需要找到它创建的平台并尝试在那里打包它,要么找出在打包操作期间定义的-J -options。可能吗?如何?