Décompilateur jadnt
Cet article présente l'utilisation le décompileur jadnt
exécutable en ligne de commande, ce qui en fait un outil très simple d'utilisation permettant de décompiler très rapidement un ensemble de librairies.
Votre avis
Current user rating: 75/100 (5 votes)
|
|
Décompilation d'un jar avec emplacement des sources
Le mode d'utilisation le plus utile, est la décompilation d'un ensemble de classe, souvent le résultat de la décompression d'un jar, et de stocker les sources dans un nouveau répertoire. Cela permet ensuite de compresser ce nouveau répertoire pour être référencé sous Eclipse par exemple.
La ligne de commande se présente ainsi:
jad -o -r -sjava -dsrc ./**/*.class
Cela aura pour effet de décompresser toutes les classes se situant dans les sous répertoire du répertoire courant, en produisant des fichier .java
, dans le répertoire src
.
La capture suivant montre un exemple de décompilation du jar ezmorph-1.0.4
, préalablement décompressé:
Parsing ./net\sf\ezmorph/Morpher.class... Generating src\net\sf\ezmorph\Morpher.java Parsing ./net\sf\ezmorph/MorpherRegistry.class... Generating src\net\sf\ezmorph\MorpherRegistry.java Couldn't fully decompile method morph Couldn't resolve all exception handlers in method morph Parsing ./net\sf\ezmorph/MorphException.class... Generating src\net\sf\ezmorph\MorphException.java Parsing ./net\sf\ezmorph/MorphUtils.class... Generating src\net\sf\ezmorph\MorphUtils.java Parsing ./net\sf\ezmorph/ObjectMorpher.class... Generating src\net\sf\ezmorph\ObjectMorpher.java Parsing ./net\sf\ezmorph\array/AbstractArrayMorpher.class... Generating src\net\sf\ezmorph\array\AbstractArrayMorpher.java Parsing ./net\sf\ezmorph\array/BooleanArrayMorpher.class... Generating src\net\sf\ezmorph\array\BooleanArrayMorpher.java Couldn't fully decompile method _mthclass$ Couldn't resolve all exception handlers in method _mthclass$ Parsing ./net\sf\ezmorph\array/BooleanObjectArrayMorpher.class... Generating src\net\sf\ezmorph\array\BooleanObjectArrayMorpher.java Parsing ./net\sf\ezmorph\array/ByteArrayMorpher.class... Generating src\net\sf\ezmorph\array\ByteArrayMorpher.java Couldn't fully decompile method _mthclass$ Couldn't resolve all exception handlers in method _mthclass$ Parsing ./net\sf\ezmorph\array/CharacterObjectArrayMorpher.class... Generating src\net\sf\ezmorph\array\CharacterObjectArrayMorpher.java Parsing ./net\sf\ezmorph\array/CharArrayMorpher.class... Generating src\net\sf\ezmorph\array\CharArrayMorpher.java Couldn't fully decompile method _mthclass$ Couldn't resolve all exception handlers in method _mthclass$ Parsing ./net\sf\ezmorph\array/DoubleArrayMorpher.class... Generating src\net\sf\ezmorph\array\DoubleArrayMorpher.java Couldn't fully decompile method _mthclass$ Couldn't resolve all exception handlers in method _mthclass$ Parsing ./net\sf\ezmorph\array/FloatArrayMorpher.class... Generating src\net\sf\ezmorph\array\FloatArrayMorpher.java Couldn't fully decompile method _mthclass$ Couldn't resolve all exception handlers in method _mthclass$ Parsing ./net\sf\ezmorph\array/IntArrayMorpher.class... Generating src\net\sf\ezmorph\array\IntArrayMorpher.java Couldn't fully decompile method _mthclass$ Couldn't resolve all exception handlers in method _mthclass$ Parsing ./net\sf\ezmorph\array/LongArrayMorpher.class... Generating src\net\sf\ezmorph\array\LongArrayMorpher.java Couldn't fully decompile method _mthclass$ Couldn't resolve all exception handlers in method _mthclass$ Parsing ./net\sf\ezmorph\array/ObjectArrayMorpher.class... Generating src\net\sf\ezmorph\array\ObjectArrayMorpher.java Parsing ./net\sf\ezmorph\array/ShortArrayMorpher.class... Generating src\net\sf\ezmorph\array\ShortArrayMorpher.java Couldn't fully decompile method _mthclass$ Couldn't resolve all exception handlers in method _mthclass$ Parsing ./net\sf\ezmorph\bean/BeanMorpher.class... Generating src\net\sf\ezmorph\bean\BeanMorpher.java Couldn't fully decompile method morph Couldn't resolve all exception handlers in method morph Parsing ./net\sf\ezmorph\bean/MorphDynaBean.class... Generating src\net\sf\ezmorph\bean\MorphDynaBean.java Parsing ./net\sf\ezmorph\bean/MorphDynaClass.class...Parsing inner class .\net\sf\ezmorph\bean\MorphDynaClass$1.class... Generating src\net\sf\ezmorph\bean\MorphDynaClass.java Parsing ./net\sf\ezmorph\object/AbstractObjectMorpher.class... Generating src\net\sf\ezmorph\object\AbstractObjectMorpher.java Parsing ./net\sf\ezmorph\object/BigDecimalMorpher.class... Generating src\net\sf\ezmorph\object\BigDecimalMorpher.java Couldn't fully decompile method morph Couldn't resolve all exception handlers in method morph Parsing ./net\sf\ezmorph\object/BigIntegerMorpher.class... Generating src\net\sf\ezmorph\object\BigIntegerMorpher.java Couldn't fully decompile method morph Couldn't resolve all exception handlers in method morph Overlapped try statements detected. Not all exception handlers will be resolved in the method getIntegerValue Couldn't fully decompile method getIntegerValue Couldn't resolve all exception handlers in method getIntegerValue Parsing ./net\sf\ezmorph\object/BooleanObjectMorpher.class... Generating src\net\sf\ezmorph\object\BooleanObjectMorpher.java Parsing ./net\sf\ezmorph\object/CharacterObjectMorpher.class... Generating src\net\sf\ezmorph\object\CharacterObjectMorpher.java Parsing ./net\sf\ezmorph\object/ClassMorpher.class... Generating src\net\sf\ezmorph\object\ClassMorpher.java Couldn't fully decompile method morph Couldn't resolve all exception handlers in method morph Parsing ./net\sf\ezmorph\object/DateMorpher.class... Generating src\net\sf\ezmorph\object\DateMorpher.java Couldn't fully decompile method morph Couldn't resolve all exception handlers in method morph Parsing ./net\sf\ezmorph\object/IdentityObjectMorpher.class... Generating src\net\sf\ezmorph\object\IdentityObjectMorpher.java Parsing ./net\sf\ezmorph\object/MapToDateMorpher.class... Generating src\net\sf\ezmorph\object\MapToDateMorpher.java Parsing ./net\sf\ezmorph\object/NumberMorpher.class... Generating src\net\sf\ezmorph\object\NumberMorpher.java Parsing ./net\sf\ezmorph\object/ObjectListMorpher.class... Generating src\net\sf\ezmorph\object\ObjectListMorpher.java Parsing ./net\sf\ezmorph\object/StringMorpher.class... Generating src\net\sf\ezmorph\object\StringMorpher.java Parsing ./net\sf\ezmorph\object/SwitchingMorpher.class... Generating src\net\sf\ezmorph\object\SwitchingMorpher.java Parsing ./net\sf\ezmorph\primitive/AbstractDecimalMorpher.class... Generating src\net\sf\ezmorph\primitive\AbstractDecimalMorpher.java Parsing ./net\sf\ezmorph\primitive/AbstractIntegerMorpher.class... Generating src\net\sf\ezmorph\primitive\AbstractIntegerMorpher.java Overlapped try statements detected. Not all exception handlers will be resolved in the method getIntegerValue Couldn't fully decompile method getIntegerValue Couldn't resolve all exception handlers in method getIntegerValue Parsing ./net\sf\ezmorph\primitive/AbstractPrimitiveMorpher.class... Generating src\net\sf\ezmorph\primitive\AbstractPrimitiveMorpher.java Parsing ./net\sf\ezmorph\primitive/BooleanMorpher.class... Generating src\net\sf\ezmorph\primitive\BooleanMorpher.java Parsing ./net\sf\ezmorph\primitive/ByteMorpher.class... Generating src\net\sf\ezmorph\primitive\ByteMorpher.java Couldn't fully decompile method morph Couldn't resolve all exception handlers in method morph Parsing ./net\sf\ezmorph\primitive/CharMorpher.class... Generating src\net\sf\ezmorph\primitive\CharMorpher.java Parsing ./net\sf\ezmorph\primitive/DoubleMorpher.class... Generating src\net\sf\ezmorph\primitive\DoubleMorpher.java Couldn't fully decompile method morph Couldn't resolve all exception handlers in method morph Parsing ./net\sf\ezmorph\primitive/FloatMorpher.class... Generating src\net\sf\ezmorph\primitive\FloatMorpher.java Couldn't fully decompile method morph Couldn't resolve all exception handlers in method morph Parsing ./net\sf\ezmorph\primitive/IntMorpher.class... Generating src\net\sf\ezmorph\primitive\IntMorpher.java Couldn't fully decompile method morph Couldn't resolve all exception handlers in method morph Parsing ./net\sf\ezmorph\primitive/LongMorpher.class... Generating src\net\sf\ezmorph\primitive\LongMorpher.java Couldn't fully decompile method morph Couldn't resolve all exception handlers in method morph Parsing ./net\sf\ezmorph\primitive/ShortMorpher.class... Generating src\net\sf\ezmorph\primitive\ShortMorpher.java Couldn't fully decompile method morph Couldn't resolve all exception handlers in method morph Parsing ./net\sf\ezmorph\test/ArrayAssertions.class... Generating src\net\sf\ezmorph\test\ArrayAssertions.java