gpt4 book ai didi

java - 比较多个 jar 文件的两个不同版本

转载 作者:太空宇宙 更新时间:2023-11-04 14:34:45 25 4
gpt4 key购买 nike

好吧,我会尽力让这个简短而甜蜜。我正在尝试将一个大型 Java 项目与旧分支进行比较,以找出两个版本之间进行了哪些更改。我已经有了两个版本的 .jar 文件,并且文件夹结构完全相同。

我想在 bash 脚本中编写此内容,但我试图找出解决此问题的最佳方法,因为问题是,jar 的路径(以及 jar 名称本身)不是与每个对应部分相同。例如...

比较 jar 文件:

2.2.9/com.project/dns-pool/1.2.2/dns-pool.1.2.2.jar

trunk/com.project/dns-pool/2.7.7/dns-pool.2.7.7.jar

所以本质上我需要遍历主干中的所有文件夹并将它们与它的对应部分进行比较。

最佳答案

我不得不回想很长时间,基本上遵循了 3 个步骤。

  1. 将 jar 文件重命名为 .zip 并提取所有类文件
  2. 将每个 jar 中的类文件分别反编译到两个文件夹中(folder_dns_1_2_2 和folder_dns_2_7_7)。 (谷歌搜索java反编译器并找到可以反编译的东西和整个文件夹/子文件夹递归地)
  3. 使用比较工具比较两个文件夹。有些工具会递归比较子文件夹中的源代码并吐出完整结果。

这只需要找到并使用适合该过程的正确工具。我不需要为任何工具付费。在良好的试用期内,您会发现开源工具甚至共享软件。

如果这两个 jar 是由不同的 JRE 版本编译的,则可能会出现误报。但总的来说,您应该能够识别出明显的差异。借助良好的比较工具,您将能够“忽略”某些差异。

很抱歉,我不知道我使用的工具的名称。

关于java - 比较多个 jar 文件的两个不同版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25728415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com