[diffoscope] diffoscope (JVM bytecode) is not supported for Java 21

Chris Lamb chris at reproducible-builds.org
Thu Jul 25 12:11:37 UTC 2024


Hello Aman,

> I have been using diffoscope to diff between Java classfiles. However, 
> it seems to be unsupported for JDK >= 21 because procyon fails to 
> decompile the code.

Do you know why it doesn't decompile the code? I see in your output:

> │┄ Command `'procyon -ec {}'` failed with exit code 1. Standard output:

Can you run that on the command line? In the first instance, it would
be great to get confirmation that your procyon installation works
fine. Or, putting it another way: if procyon cannot disassemble the
code, there is very little that diffoscope can do.

> With JDK 17, diffoscope either shows the diff between the disassembled 
> output or decompiled output (side question, how does it decide between 
> the two?).

diffoscope tries procyon first and determines whether that shows any
difference. If it doesn't, it will fallback to javap. (And then to
hexdump.)


Best wishes,

-- 
      o
    ⬋   ⬊      Chris Lamb
   o     o     reproducible-builds.org 💠
    ⬊   ⬋
      o


More information about the diffoscope mailing list