Fernflower and IntelliJ IDEA's java-decompiler
Asked Answered
I

1

34

I'm trying to figure out how to use the Fernflower Java decompiler.

I can find java-decompiler.jar at the following location:

~/idea-IC-162.1628.40/plugins/java-decompiler/lib/java-decompiler.jar

There is no fernflower.jar, however. I assume this is because the functionality has been folded into java-compiler.jar, and the Fernflower README has simply not been updated in 2 years.

When I run the following, however:

java -jar ~/idea-IC-162.1628.40/plugins/java-decompiler/lib/java-decompiler.jar myclassfile.class .

I get

no main manifest attribute, in /home//idea-IC-162.1628.40/plugins/java-decompiler/lib/java-decompiler.jar

Has IntelliJ stopped supporting command-line based decompilation, or am I missing something here?

Innominate answered 5/10, 2016 at 2:2 Comment(0)
W
48

Try to invoke main class org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler manually

java -cp java-decompiler.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler myclassfile.class .

Also you can find more about internal usage of Fernflower inside IDEA by query in source code https://github.com/JetBrains/intellij-community/search?utf8=%E2%9C%93&q=Fernflower

Wende answered 5/10, 2016 at 7:51 Comment(3)
Great, this works. TIL about the difference between executable and non-executable JARs.Innominate
You can also decompile jar files and folders by passing them instead of a class file.Liaison
@JesusH Thanks, I try and worked. java -cp java-decompiler.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler '.\org-demo-push-0.0.1-SNAPSHOT.jar' pushOralla

© 2022 - 2024 — McMap. All rights reserved.