【发布时间】:2016-12-06 08:52:21
【问题描述】:
我正在使用 Beyond Compare 4 (4.1.9) 来比较战争文件。
我需要比较我在几个包中找到的文件.class。
- 如何使用此产品比较它们(Beyond Compare 4)?
- 否则还有其他产品可以比较war文件并编译.class文件?
【问题讨论】:
标签: java war .class-file beyondcompare4
我正在使用 Beyond Compare 4 (4.1.9) 来比较战争文件。
我需要比较我在几个包中找到的文件.class。
【问题讨论】:
标签: java war .class-file beyondcompare4
双击 Beyond Compare 文件夹中的 war 文件比较会将其展开为文件夹,因为 war 文件本质上是 zip 文件。
要在 Beyond Compare 中将 Java 类文件反编译为源代码,请安装 Java Class to Source 文件格式。安装好文件格式后,当你双击 .war 存档中的 .class 文件时,它会在 Beyond Compare 的 Text Compare 中显示反编译的源代码。
文件格式的下载页面: http://www.scootersoftware.com/download.php?zz=kb_moreformatsv4
请注意,Java 类到源文件格式仅适用于 Windows,不适用于 Beyond Compare 的 Linux 或 Mac 版本。
【讨论】:
从http://www.scootersoftware.com/download.php?zz=kb_moreformatsv4下载Java Class to Source文件格式
在 Beyond Compare 中,选择工具 |导入设置。
填写下载的文件名,点击下一步继续完成。
【讨论】:
我最近遇到了在 Beyond Compare 4 中比较类文件的需求,所以我发现添加一个外部程序并使用 javap -l -p -c -constants %s > %t 2>&1 对我来说已经足够了。只需确保最近的 javap 是 PATH 之一,它可以理解您想要比较的任何类文件格式。不需要额外的软件并且是跨平台兼容的。
【讨论】:
Option : javap -l -p -c -constants %s > %t 2>&1 : 在 beyondCompare4 4.3.7(迄今为止的最新版本)上对我不起作用,如果直接通过 cmd 使用,则会给出.class 输出,但格式不好,对于我的 Java 阅读器来说,它并不是真正可解释的。
通过http://www.scootersoftware.com/download.php?zz=kb_moreformatsv4 下载格式的选项:对我也不起作用。这个库是基于 http://varaneckas.com/jad 的,它已经很老了。
我推荐并且有效的选项是: 下载https://github.com/kwart/jd-cli(项目基于著名的“Java Decompiler”或我们所知的“jd-gui”)。安装后,在 BeyondCompare4 中执行以下操作: 进入格式,创建新格式,使用外部程序,并使用以下内容: C:\Users%USERNAME%\jd-cli-1.2.0-dist\jd-cli.bat %s > %t 2>&1
希望这会有所帮助。
【讨论】: