IDEA集成IntelliJad自动反编译class文件

本文介绍如何在IntelliJ IDEA中通过IntelliJad插件实现对.class文件的自动反编译,并展示了详细的安装步骤及配置方法。

IDEA集成IntelliJad自动反编译class文件 

 

自:http://wangqiaowqo.iteye.com/blog/404272


由congdepeng(congdepeng@hotmail.com)首发于IntelliJ IDEA中文爱好者论坛 http://www.intellij.org.cn/bbs/viewtopic.php?f=4&t=480 
转载请保留本信息,谢谢!------- 

Intellij IDEA是一款综合的Java 编程环境,被许多开发人员和行业专家誉为市场上最好的IDE。它提供了一系列最实用的的工具组合:智能编码辅助和自动控制,支持J2EE,Ant,JUnit和CVS集成,非平行的编码检查和创新的GUI设计器。 

IntelliJad是IDEA的反编译插件,IntelliJad实际上是调用Jad(具体见这个网站介绍http://www.kpdus.com/jad.html)来进行反编译,所以安装好IntelliJad之前,需要在前面介绍的网站下载一个Jad.exe,解压到一个确定的目录。 



(1)下面打开IntelliJ IDEA ,我用的版本是IntelliJ IDEA 7.0.3,点击setting图标(ctrl+alt+s),打开如下的设置,然后点击Plugins(U)图标,如图1所示。 

(2)在弹出的Plugins界面里面选择Available,然后在下面列出的选项里面找到IntelliJad,右击下载并且安装,安装完成后点击 Apply,如图2所示,重新启动一下IntelliJ IDEA。 

(3)打开后继续点击setting图标(ctrl+alt+s),如果不出意外的话, 
在Idea的设置视图里面,有2个IntelliJad图标,如图3所示,上面一个是项目的设置,下面一个是整个IDE的设置。 默认情况下,项目设置不可用,因此项目遵循IDE的设置。这样的话,你可以固定的为IntelliJad 做一个设置,当然了,在必要的时候,可以为不同的项目做具体的设置。 

(4)现在,点击下面一个IDE Setting里面的黑白色的IntelliJad图标,如图3所示,点击Browse,选择你下载的Jad的解压路径,图中D:/work/IntelliJ IDEA 7.0.3/jadnt158/jad.exe是我的解压路径。点击确定退出,回到开发界面,现在你点击一个class文件,将自动的反编译为java文件。当然你也可以选择在反编译前进行询问。 


另外,你可以在IntelliJad反编译出来的文件上设置断点,在dubug的时候也可以跟踪进来,真的很好很强大。 

下面附上IntelliJad的英文使用说明和我的翻译: 

General usage instructions: 
You must have Jad installed on your machine. Open the IntelliJad config (see paragraph below for a note on this) and specify the path to the executable in the "Jad executable" field. Once this is done, the existing default settings are suitable for immediate transparent decompilation. 
In IntelliJ's settings view, there are two IntelliJad icons - one for project settings, and one for IDE settings. By default, the project settings are disabled and therefore fall back to the IDE settings. In this way, you can set up a persistent configuration for IntelliJad but override it when necessary for specific projects. 
Help for configuring IntelliJad can be found under Help/IntelliJad/Configuring IntelliJad/IntelliJad options. The help will be developed on an ongoing basis to improve it. 

原文地址:http://plugins.intellij.net/plugin/?id=1570 
JAD介绍和下载:http://www.kpdus.com/jad.html#download 

常规使用说明: 
首先你必须安装好了Jad。 打开IntelliJad 配置(具体看下图的注解),然后选择"Jad executable"的执行路径。完成上述步骤,默认设置立刻自动的反编译。 
在Idea的设置视图里面,有2个IntelliJad图标,一个是项目的设置,一个是整个IDE的设置。 
默认情况下,项目设置不可用,因此项目遵循IDE的设置。这样的话,你可以固定的为IntelliJad 做一个设置,当然了,在必要的时候,可以为不同的项目做具体的设置。 
配置IntelliJad的具体帮助文件在[Help/IntelliJad/Configuring IntelliJad/IntelliJad options]里面。该帮助文件帮助你进一步的使用IntelliJad。 


p1.gif (50.02 KB) 被浏览 662 次 


p2.JPG (124.97 KB) 被浏览 685 次 

### 批量保存 IntelliJ IDEA自动反编译class 文件 在 IntelliJ IDEA 中,虽然内置了对 `.class` 文件自动反编译功能,但默认情况下并未提供直接批量保存反编译文件的功能。以下方法可以实现该需求: #### 使用内置反编译工具手动保存 IntelliJ IDEA 的内置反编译器支持单个文件的保存操作。当用户双击打开一个 `.class` 文件时,IDEA自动反编译并显示其内容。此时,可以通过右键菜单选择 **“Save as...”** 将反编译后的代码保存为 `.java` 文件[^1]。 然而,这种方式仅适用于少量文件的保存。对于大批量的 `.class` 文件,手动操作效率较低。 #### 使用命令行工具批量反编译 为了实现批量保存,可以使用 IntelliJ IDEA 提供的独立反编译工具 `ConsoleDecompiler`。以下是具体实现方法: 1. **定位反编译工具路径** 在 IntelliJ IDEA 的安装目录中找到 `java-decompiler.jar` 文件。例如,在 Windows 系统中,路径可能类似于: ``` D:\javaComponent\JetBrains\IntelliJ IDEA 2022.2.3\plugins\java-decompiler\lib\java-decompiler.jar ``` 2. **运行反编译命令** 使用以下命令对目标 `.jar` 文件或 `.class` 文件进行批量反编译,并将结果保存到指定目录: ```bash java -cp "D:\javaComponent\JetBrains\IntelliJ IDEA 2022.2.3\plugins\java-decompiler\lib\java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true D:\javaProjects\xxx.jar "D:\javaProjects\" ``` 参数说明: - `-dgs=true`:启用调试符号生成。 - `D:\javaProjects\xxx.jar`:输入的 `.jar` 文件路径。 - `"D:\javaProjects\"`:输出目录路径。 此命令将把 `xxx.jar` 中的所有 `.class` 文件反编译为对应的 `.java` 文件,并保存到指定目录[^1]。 #### 使用第三方插件 除了上述方法,还可以通过安装第三方插件来增强 IntelliJ IDEA 的功能。例如,插件 **“Bytecode Viewer”** 支持批量反编译和保存 `.class` 文件。安装后,用户可以直接在 IDE 内完成批量操作,而无需依赖外部工具[^2]。 #### 自定义脚本实现自动化 如果需要更高的灵活性,可以编写自定义脚本来调用反编译工具。以下是一个简单的 Python 脚本示例,用于遍历目录中的所有 `.class` 文件并调用 `ConsoleDecompiler` 进行反编译: ```python import os import subprocess def batch_decompile(input_dir, output_dir, decompiler_jar): for root, dirs, files in os.walk(input_dir): for file in files: if file.endswith(".class"): input_file = os.path.join(root, file) relative_path = os.path.relpath(root, input_dir) output_subdir = os.path.join(output_dir, relative_path) os.makedirs(output_subdir, exist_ok=True) subprocess.run([ "java", "-cp", decompiler_jar, "org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler", "-dgs=true", input_file, output_subdir ]) # 示例调用 batch_decompile( input_dir="D:\\javaProjects\\input", output_dir="D:\\javaProjects\\output", decompiler_jar="D:\\javaComponent\\JetBrains\\IntelliJ IDEA 2022.2.3\\plugins\\java-decompiler\\lib\\java-decompiler.jar" ) ``` 此脚本会递归遍历指定目录中的所有 `.class` 文件,并将其反编译结果保存到目标目录[^3]。 ### 注意事项 - 确保反编译工具的版本与 IntelliJ IDEA 版本兼容。 - 如果目标 `.class` 文件包含复杂的字节码结构,可能需要调整反编译参数以获得更准确的结果。 - 批量反编译过程中可能会遇到性能问题,建议在高性能设备上执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值