Bug#849386: diffoscope: Improve Java support (use decompilers by default and javap as fallback)
Emanuel Bronshtein
e3amn2l at gmx.com
Mon Dec 26 14:57:34 UTC 2016
Source: diffoscope
Severity: wishlist
Dear Maintainer,
Currently javap is used for .class files, for example:
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/arm64/diffoscope-results/velocity.html
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/arm64/diffoscope-results/aspectj.html
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/arm64/diffoscope-results/jabref.html
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/arm64/diffoscope-results/openjpa.html
it will be better (easier to read/understand) to use decompiler instead which return Java code from class files, and use javap as fallback if decompiler tool failed (aborted/exception/etc..) or fail to find difference.
in Debian there is package for 'procon-decompiler' Java decompiler:
https://packages.debian.org/unstable/procyon-decompiler
more FLOSS Java decompilers (might be available in other distros, such as: https://aur.archlinux.org/packages/?K=java+decompiler )
Krakatau - https://github.com/Storyyeller/Krakatau
Candle - https://github.com/bradsdavis/candle-decompiler
Fernflower - https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine / https://github.com/fesh0r/fernflower
Jadx - https://github.com/skylot/jadx
that can be used as fallback to 'procyon-decompiler' (javap need to be used as last effort)
More information about the Reproducible-builds
mailing list