使用IntelliJ IDEA中的java-decompiler插件将jar包反编译为java源码
· 2 min read
有的时候需要将jar
包中的class
文件反编译为java
源码文件并对其行为进行分析.
IntelliJ IDEA
中的java-decompiler
插件可以将jar
包中的class
文件反编译为java
源码文件.
下面介绍如何使用IntelliJ IDEA
中的java-decompiler
插件将jar
包反编译为java
源码.
解决方案
获取java-decompiler
插件
从IDEA
安装目录下的plugins/java-decompiler/lib
目录下获取java-decompiler.jar
.
如果没有安装java-decompiler
插件,可以从点击这里下载
反编译jar
包
目前java-decompiler
反编译后的的源码文件是打包在jar
包中的,需要将其解压出来.
这样比较不方便, 下面我提供一个脚本来反编译以及解压jar
包中的源码文件.
decompile.sh
#!/bin/bash
set -ex
JAR_FILE_PATH=$(realpath $1)
DEST_DIRECTORY=$(realpath $2)
rm -rf $DEST_DIRECTORY
mkdir $DEST_DIRECTORY
java -cp java-decompiler.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -hdc=0 -dgs=1 -rsy=1 -rbr=1 -lit=1 -nls=1 -mpm=60 $JAR_FILE_PATH $DEST_DIRECTORY
unzip $DEST_DIRECTORY/$(basename $JAR_FILE_PATH) -d $DEST_DIRECTORY
使用方式如下
./decompile.sh drm-control.jar ./decompiled
这个脚本会将drm-control.jar
反编译为java
源码文件并解压到./decompiled
目录下.