JODE is great! However, when decompiling code
(presumably) compiled with Java SE 5, the program
appears to erroneously attempt to load a class named
"extends" (and fail):
Jode (c) 1998-2001 Jochen Hoenicke <jochen@gnu.org>
Can't read class extends, types may be incorrect.
(java.io.FileNotFoundException: extends.class)
java.io.FileNotFoundException: extends.class
at
jode.bytecode.SearchPath.getFile(SearchPath.java:451)
at
jode.bytecode.ClassInfo.loadInfo(ClassInfo.java:622)
at
jode.bytecode.ClassInfo.getOuterClasses(ClassInfo.java:802)
at
jode.decompiler.Options.skipClass(Options.java:59)
at
jode.decompiler.Main.decompileClass(Main.java:164)
at jode.decompiler.Main.decompile(Main.java:403)
at jode.decompiler.Main.main(Main.java:214)
extends
Failed to decompile extends.
java.lang.NoClassDefFoundError: extends
at
jode.bytecode.ClassInfo.loadInfo(ClassInfo.java:631)
at
jode.decompiler.ClassAnalyzer.<init>(ClassAnalyzer.java:86)
at
jode.decompiler.ClassAnalyzer.<init>(ClassAnalyzer.java:123)
at
jode.decompiler.ClassAnalyzer.<init>(ClassAnalyzer.java:128)
at
jode.decompiler.Main.decompileClass(Main.java:187)
at jode.decompiler.Main.decompile(Main.java:403)
at jode.decompiler.Main.main(Main.java:214)
The program then proceeds to decompile the class, with
considerable success. Given that the class file does
not appear to have been obfuscated, and that "extends"
is not a legal Java class name, it looks to me as if
JODE is getting confused. JODE seems successfully to
ignore the problem, however, so the issue seems mostly
cosmetic.
I ran into this issue when decompiling several of the
classes from Sun's JRE library. Class
sun.plugin.javascript.JSContext is probably a good test
case because it's very simple: an interface with a
single method.
Logged In: YES
user_id=18252
I think this is due to the new bytecode attributes that are
disturbing the old bytecode package. You can try Jode's
Subversion trunk (or jode-1.90-xyz); this has a completely
reworked bytecode package and no problems with
sun.plugin.javascript.JSContext.
Regards,
Jochen