有没有类似bsdiff/Courgette的东西来存储jar文件?

2022-09-03 08:05:02

Google使用bsdiffCourgette来修补二进制文件,如Chrome发行版。是否有任何类似的工具可用于修补jar文件?

我正在通过带宽受限的连接远程更新jar文件,并希望最大限度地减少发送的数据量。我确实在某种程度上对客户端计算机有一定的控制权(即我可以在本地运行脚本),并且我可以保证目标应用程序当时不会运行。

我知道我可以通过将更新的类文件放在类路径中来修补java应用程序,但是我更喜欢使用更干净的方法来进行更新。如果我能从目标jar文件开始,应用二进制补丁,然后得到一个与新jar(从中创建补丁)相同的(按位)的更新jar文件,那就太好了。


答案 1

在Sourceforge上尝试javaxdelta项目。它应该允许创建补丁并应用它们。

[编辑]此工具尚不存在。使用常用工具打开 JAR 文件,然后使用 javaxdelta 在 JAR 中的每个条目创建一个修补程序。将它们压缩并复制到服务器上。

另一方面,您需要安装一个小的可执行JAR,它将补丁和JAR文件作为参数并应用补丁。你也必须写这个,但这不应该超过几个小时。


答案 2

.jar文件已经压缩,因此您真正需要的是一种在zip文件;)上效果良好的压缩。如果你在把它塞进罐子里之前就明白了,那么你有更好的机会利用我所期望的“java”的知识。我怀疑你可以将本文中描述的因式分解调整为java特定的压缩方法。


推荐