Beyond Compare反编译插件提示转换错误

使用Procyon替换BeyondCompare的jad.exe进行Class文件反编译
本文档介绍了在Java开发中遇到的使用BeyondCompare进行class文件反编译时遇到的问题,由于jad.exe对高版本JDK支持不佳导致异常。解决方案是下载并修改BeyondCompare的BCFormats.bcpkg插件,用Procyon-decompiler替换jad.exe进行反编译。详细步骤包括下载Procyon-decompiler,替换CLASS_to_JAVA.bat的内容,并重新安装插件。
该文章已生成可运行项目,

本文档要解决的问题
Beyond Compare是一款文件差异比较软件,java开发的时候,有时候涉及到把class文件反编译查看源码的需求。但是有时候进行class文件反编译成源码的时候会出现以下异常
在这里插入图片描述

出现这个问题的原因是因为反编译的插件底层是使用jad.exe进行反编译的,jad.exe对高版本的jdk支持的不是很好。

2、插件下载
登录官网:http://www.scootersoftware.com/download.php?zz=kb_moreformatsv4 找到如下的插件,勾选之后进行下载。
在这里插入图片描述
(直接用)云盘链接:https://pan.baidu.com/s/1r7OjDzCabZUW9J72C8nmUQ 提取码:lios
3、插件修改
我们把下载下来的BCFormats.bcpkg插件使用WinRAR软件打开,打开之后发现里面的内容如下
在这里插入图片描述

打开CLASS_to_JAVA.bat查看内容如下:
在这里插入图片描述

从这里可以发现,这个就是调用jad.exe对 class 文件进行反编译,反编译之后的原始内容通过重定向输出流到软件中展示出变异之后的内容,所以从这里我们就可以知道,如果有一个工具可以通过命令行的形式把class文件进行反编译,则我们就可以用这个工具替换jad.exe。幸运的是,procyon-decompiler就是这么一个既支持高版本的jdk又可以通过命令行的形式进行class文件反编译的工具。

4、使用procyon-decompiler代替jad
https://pan.baidu.com/s/1r7OjDzCabZUW9J72C8nmUQ 提取码:lios
java -jar procyon-decompiler-0.5.36.jar Proxy0.class
1
从这里可以看出,这个工具运行需要本机安装jdk。作为java开发人员,这个前置需求几乎可以忽略。
我们使用WinRAR打开工具,把jar包拷贝到插件里面
在这里插入图片描述

然后我们在编辑CLASS_to_JAVA.bat,把内容修改成如下内容:

java -jar Helpers\Java\procyon-decompiler-0.5.36.jar %1 > %2
1
然后Beyond Compare从新安装一下插件,就可以正常进行反编译操作了。
在这里插入图片描述

本文章已经生成可运行项目
### Beyond Compare 反编译插件下载及使用方法 Beyond Compare 是一款功能强大的文件和文件夹比较工具,它支持通过插件扩展功能,包括对 `.class` 文件的反编译支持。以下是如何下载和使用 Beyond Compare反编译插件的详细步骤。 --- ### 一、下载反编译插件 1. **获取插件包** 通常,反编译插件可以通过社区或博客资源获取。例如,有开发者已经整理好了适用于 `.class` 文件对比的插件 `BCFormats.bcpkg`。可以参考以下链接获取插件包: - [https://www.cnblogs.com/readiay/p/12863471.html](https://www.cnblogs.com/readiay/p/12863471.html) - [https://blog.youkuaiyun.com/zong1114/article/details/51752349](https://blog.youkuaiyun.com/zong1114/article/details/51752349) - 插件下载地址:[https://xuxuweizhi.oss-cn-beijing.aliyuncs.com/static/images/BCFormats.zip](https://xuxuweizhi.oss-cn-beijing.aliyuncs.com/static/images/BCFormats.zip) [^3] 2. **插件内容** 插件包通常包含 `.bcpkg` 文件,该文件可以直接导入 Beyond Compare 进行安装。 --- ### 二、安装插件 1. 打开 Beyond Compare。 2. 点击菜单栏的 **工具** → **导入设置**。 3. 在弹出的窗口中选择 **“BCFormats.bcpkg”** 文件。 4. 点击 **“下一步”**,然后勾选所有文件格式。 5. 点击 **“完成”**,插件将被成功导入并激活。 --- ### 三、配置反编译脚本 如果需要自定义反编译行为,可以使用脚本方式配置。以下是基于 IDEA 反编译器的配置示例: #### 1. 准备目录和文件 - `java-decompiler.jar`:IDEA 自带的反编译库文件。 - `CLASS_TO_JAVA_IDEA.bat`:反编译脚本文件。 #### 2. 编写反编译脚本 ```bat @echo off REM 定义临时目录 set TMP_DIR=C:\Program Files\Beyond Compare 4\plugin\class\tmp REM 复制源文件并重命名.class到tmp目录 copy %1 "%TMP_DIR%\%~n1.class" REM 反编译.class文件到tmp目录 java -cp "C:\Program Files\Beyond Compare 4\plugin\class\java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true "%TMP_DIR%\%~n1.class" "%TMP_DIR%\%~n1.java" REM 将反编译后的.java文件重定向目标文件 type "%TMP_DIR%\%~n1.java" > %2 ``` #### 3. 配置插件 1. 点击 **工具** → **文件格式**。 2. 点击 **新建** → **文本格式**。 3. 在 **常规掩码** 中填写 `.class`。 4. 在 **转换** 中选择 **外部程序**,并指定上述的 `CLASS_TO_JAVA_IDEA.bat` 脚本。 5. 保存配置。 --- ### 四、使用插件进行反编译 1. 打开 Beyond Compare。 2. 加载需要比较的 `.class` 文件。 3. 插件会自动调用反编译脚本,将 `.class` 文件转换为 Java 源码。 4. 在界面中即可查看源码差异。 --- ### 五、常见问题及解决方法 1. **转换错误** 如果提示转换错误,通常是由于默认插件使用的是 `jad.exe`,其对高版本 JDK 支持不佳。建议使用 IDEA 的反编译器替代方案 [^2]。 2. **中文乱码** 在插件配置中,可以手动设置文件编码,例如 UTF-8 或 GBK,以避免中文乱码问题。 --- ### 六、扩展功能 Beyond Compare 还支持多种插件扩展,例如: - **对比压缩文件**:通过插件支持 `.zip`、`.jar` 文件的直接对比。 - **脚本支持**:集成 Python、PowerShell 等脚本语言,实现自动化对比任务。 --- ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值