Comment by appendixv3
4 days ago
Very cool project! Love the idea of a Java decompiler written in C — the speed must be great.
Any plan to support `.dex` in the future? Also curious how you handle inner classes inside JARs.
4 days ago
Very cool project! Love the idea of a Java decompiler written in C — the speed must be great.
Any plan to support `.dex` in the future? Also curious how you handle inner classes inside JARs.
The "jikes" compiler from IBM <https://github.com/daveshields/jikespg> was written in C++ and was for the longest time screaming fast. It also had its own parser generator lpg which was fun to play with, if you're into those things <https://github.com/daveshields/jikespg>
It seems someone liked it and made a "v2" along with LSP support https://github.com/A-LPG/LPG2#lpg2
Jikes also gave massively better error messages than the official Java compiler, from what I remember, and it certainly ran a lot faster on the Amiga (https://aminet.net/package/dev/lang/jikes) than trying to run javac via Kaffe (https://en.wikipedia.org/wiki/Kaffe) did.
Certainly not everything on Jikes, given that it was one of the first bootstraped Java toolchains.
https://www.jikesrvm.org/
I am writing the part of decompiling dex and apk. The current speed is about 10 times faster than that of Java, and it takes up less resources than Java. And the compiled binary is smaller, only about 300k. Thank you for your attention.
> 10 times faster than that of Java
I was hoping that these days' Java would be "almost" as fast C/C++. Oh well.
In the process of writing this, I learned a lot about JVM. JVM has done well enough, even surpassing C/C++ in some cases.
This has been my life experience with things written in C/C++, so speed doesn't matter. Or, I guess from an alternative perspective, it ran very fast, but exited very fast, too :-D
Sorry for giving you a bad experience. Please provide the jar file or class file. I hope I can fix it as soon as possible.
Is it? This is my experience with Python. The C/C++ programs I use daily never seem to crash (Linux, bash, terminals, X, firefox, vim, etc.). It must be years ago one of those programs crashed while I used it.
2 replies →
The readme shows support for dumping dex files. Edit: missed that it has a comment that stays "unsupport for now" but at least it looks like something planned
It is processes inner classes recursively. First read all entry from jar, and analyze the relationships between classes. Then do some decompile job.