49 java decompiling intellij-idea java-8
IDEA有一个很棒的内置功能 - 反编译器.它工作得很好.我可以复制源代码,但我找不到将所有反编译的java类提取到java文件的选项.
这个项目有很多java类和包,所以我将长时间手动复制它.
有谁知道如何提取到java源文件.谢谢
yan*_*yan 44
截至2017年8月和IntelliJ V2017.2,接受的答案似乎不再完全准确:没有fernflower.jar使用.
调用jar文件java-decompiler.jar并且不包含主清单...而是可以使用以下命令(从Mac安装):
java -cp "/Applications/IntelliJ IDEA.app/Contents/plugins/java-decompiler/lib/java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler
Run Code Online (Sandbox Code Playgroud)
(您将获得错误的使用命令,但它确实有效).
小智 36
要从jar命令行使用IntelliJ Java反编译器,请按照此处提供的说明操作:https: //github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine
naX*_*aXa 23
按照IntelliJ JD插件的说明进行操作.或者查看以下说明中的摘录.
java -jar fernflower.jar [<source>]+ <destination>
Run Code Online (Sandbox Code Playgroud)
+表示1次或多次
<source>:包含要反编译的文件的文件或目录.目录以递归方式扫描.允许的文件扩展名是class,zip和jar.
<destination>:目标目录
例:
java -jar fernflower.jar -hdc=0 -dgs=1 -rsy=1 -lit=1 c:\Temp\binary\ -e=c:\Java\rt.jar c:\Temp\source\
Run Code Online (Sandbox Code Playgroud)
请注意,如果您为源传递".jar"文件,它将在目标中创建另一个".jar"文件,但是,在新的".jar"文件中,文件将是.java而不是.java.类文件(它不会爆炸jar).
人们问我:我怎么得到fernflower.jar?
如果您安装了任何IntelliJ产品,很可能您已经在计算机上安装了Fernflower反编译器.IntelliJ IDEA附带Java Bytecode Decompiler插件(捆绑),这是Fernflower的现代扩展.
${IntelliJ_INSTALL_DIR}\plugins\java-decompiler\lib\java-decompiler.jar(例如:C:\ Program Files\JetBrains\IntelliJ IDEA 2018\plugins\java-decompiler\lib)中找到该文件.此JAR不可执行,因此我们无法使用它java -jar.但是这样的工作:
java -cp fernflower.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler [<source>]+ <destination>
Run Code Online (Sandbox Code Playgroud)
org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler 是包含运行反编译器的主要方法的类.
例:
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
Run Code Online (Sandbox Code Playgroud)如果您没有安装IntelliJ产品,请立即下载(可在jetbrains.com上获得)或从源(在Github上提供)制作您自己的反编译器可执行文件.
IntelliJ IDEA 的反编译器并不是考虑到这种用法而构建的。它只是为了帮助程序员查看他们正在开发的 java 类的字节码。为了反编译大量没有源代码的类文件,您将需要一些其他专门用于此工作的 java 反编译器,并且很可能独立运行,例如 jad、fernflower 等。
| 归档时间: |
|
| 查看次数: |
89644 次 |
| 最近记录: |