「FernFlower」

Fernflower是第一个实际工作的分析反编译器,可以用于Java和一般的高级编程语言。

获取源码

该源码位于:https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine
及一个克隆出的源码:https://github.com/fesh0r/fernflower

如何构建

参考:https://github.com/MinecraftForge/FernFlower/issues/1

使用gradle进行构建,build.gradle文件参考:https://gist.github.com/LexManos/abf02179db7b5b367ee33639e266b34b

build.gradle文件放入/intellij-community/plugins/java-decompiler/engine目录后,执行:gradle build

生成的fernflower-x.x.x.jar位于build/libs/目录下。

直接下载

Download Page: http://files.minecraftforge.net/maven/net/minecraftforge/fernflower/

安装的程序文件

fernflower-x.x.x.jar,用于反编译.class文件

fernflower wapper:

#!/bin/bash

# 不适用于将该脚本加入环境变量的情况

script_name="$0"

jar_path=$(test -L $script_name && readlink $script_name || echo $script_name)
jar_path=$(dirname $jar_path)

java -jar "${jar_path}"/fernflower.jar $@

参考文献

Homepage: https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine

TODO 完善FernFlower内容