Kdo by neznal jd-gui Java Decompiler (z free.fr) a jeho sourozence, pluginy pro IDE – Eclipse a IntelliJ. Ale nechyběla vám také někdy možnost rychle decompilovat celý JAR nebo WAR do adresáře, případně zobrazit si decompilovanou třídu jen v konzoli bez nutnosti spouštění GUI?
Jestliže ano, pak se zkuste podívat na utilitku jd-cli, která toto všechno umožňuje. Tato aplikace je jednoduchý wrapper nad nativní knihovnou pro jd-gui InelliJ plugin.
Kde všude tato java aplikace běží?
Rozbalte
Chcete-li zjistit co se změnilo mezi verzemi nějaké knihovny, pak použijte něco na způsob:
Projekt naleznete na githubu - má dva moduly:
Jestliže ano, pak se zkuste podívat na utilitku jd-cli, která toto všechno umožňuje. Tato aplikace je jednoduchý wrapper nad nativní knihovnou pro jd-gui InelliJ plugin.
Kde všude tato java aplikace běží?
- Windows
- Linux
- Mac OSX
Kompilace
Potřebujete git a Maven.git clone git@github.com:kwart/jd-cmd.git cd jd-cmd mvn clean package
Rozbalte
jd-cli-[version].zip
(.tar.gz) někam, kam odkazuje systémová PATH
proměnná (C:\Windows
nebo $HOME/bin
) - distribuce obsahuje i spouštěcí skripty (shell a batch), takže pak už jen vesele volátejd-cli [aParametry]
Příklady použití
jd-cli HelloWorld.classZobrazí dekompilovanou třídu v konzoli
jd-cli --skipResources -n -g ALL app.jarDekompiluje obsah archivu
app.jar
do souboru app.src.jar
, přeskočí kopírování resource souborů a výstup bude obsahovat v java souborech i komentáře s čísly řádků. Aplikace vypisuje všechny debug informace.jd-cli myapp.jar -od decompiled -ocDekompiluje
myapp.jar
do adresáře pojmenovaného 'decompiled
' a také vypisuje dekompilované třídy na obrazovku. jd-cli --helpNa co asi tento příkaz slouží?
Chcete-li zjistit co se změnilo mezi verzemi nějaké knihovny, pak použijte něco na způsob:
jd-cli -od old library-oldVersion.jar jd-cli -od new library-newVersion.jar winmerge old new
Projekt naleznete na githubu - má dva moduly:
jd-lib
- API decompilátorujd-cli
- command-line prográmek (all-in-one jar), který využívá jd-lib a navíc obsahuje i JCommander pro parsování argumentů a LogBack pro logování.
Komentáře
https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler