如何反编译为java文件intellij的想法
IDEA有一个很棒的内置功能 - 反编译器。它工作得很好。我可以复制源代码,但我找不到将所有反编译的java类提取到java文件的选项。
这个项目有很多java类和包,所以我将长时间手动复制它。
有没有人知道如何提取到java源文件。感谢
IDEA有一个很棒的内置功能 - 反编译器。它工作得很好。我可以复制源代码,但我找不到将所有反编译的java类提取到java文件的选项。
这个项目有很多java类和包,所以我将长时间手动复制它。
有没有人知道如何提取到java源文件。感谢
截至2017年8月和IntelliJ V2017.2,接受的答案似乎不再完全准确:没有使用。fernflower.jar
jar 文件被调用,并且不包含主清单...相反,您可以使用以下命令(从Mac安装):java-decompiler.jar
java -cp "/Applications/IntelliJ IDEA.app/Contents/plugins/java-decompiler/lib/java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler
(你会得到错误的使用命令,但它确实有效)。
按照 IntelliJ JD 插件的说明进行操作。或查看以下说明的摘录。
java -jar fernflower.jar [<source>]+ <destination>
+
表示 1 次或更多次
:包含要反编译的文件的文件或目录。以递归方式扫描目录。允许的文件扩展名包括类、zip 和 jar。
:目标目录<source>
<destination>
例:
java -jar fernflower.jar -hdc=0 -dgs=1 -rsy=1 -lit=1 c:\Temp\binary\ -e=c:\Java\rt.jar c:\Temp\source\
请注意,如果您向它传递源的“.jar”文件,它将在目标中创建另一个“.jar”文件,但是,在新的“.jar”文件中,这些文件将被.java而不是.class文件(它不会分解jar)。
人们问我:我如何得到蕨类植物花.jar?
如果您安装了任何 IntelliJ 产品,则您的计算机上很可能已经安装了 Fernflower 反编译器。IntelliJ IDEA附带Java Bytecode Decompiler插件(捆绑),这是Fernflower的现代扩展。
${IntelliJ_INSTALL_DIR}\plugins\java-decompiler\lib\java-decompiler.jar
此 JAR 不可执行,因此我们无法使用 运行它。但是,像这样的东西是有效的:java -jar
java -cp fernflower.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler [<source>]+ <destination>
org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler
是包含运行反编译器的 main 方法的类。
例:
mkdir output_src
java -cp fernflower.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -hdc=0 -dgs=1 -rsy=1 -lit=1 ./input.jar ./output_src
如果您没有安装 IntelliJ 产品,请立即下载(可在 jetbrains.com 上获得),或者从源代码(可在 Github 上找到)制作自己的反编译器可执行文件。