Für eine geforderte Dokumentation mit Javadoc für ein Javaprogramm benötigt man logischerweise den Java Quellcode. Was ist aber wenn der Quellcode nicht mehr vorhanden ist?
Vor einigen Wochen ging bei mir auf der Arbeit die Festplatte meines Entwicklungscomputers kaputt. Normalerweise ziehe ich immer ein Backup der Daten auf ein Netzlaufwerk. Aber wie es Murphy so will, hatte ich das in diesem Fall mehrere Tage nicht gemacht. Deshalb fehlt natürlich ein aktuelles Backup. Das ist ärgerlich, passiert aber nun mal. Glücklicherweise gibt es Software, die verlorene Daten wiederherstellen kann. Wie es bei Murphy so ist, konnten einige Daten/Ordner nicht wiederhergestellt werden.
Von einem Javaprogramm muss ich eine Quellcodedokumentation anfertigen. Dummerweise gehörte zu den nicht wiederherstellbaren Daten, auch ein Großteil dieses Javaprogramms. Und bei Sicherungen war natürlich nur eine ältere Version. Zum Glück gibt es aber noch das fertig kompilierte Programm.
Java Programme kann man nämlich dekompilieren. Man kann also aus einem fertigen Java-Programm wieder den Quellcode erstellen. Das Dekompilieren von Javaprogrammen kann aus der Sicht eines Java Programmierers ein Nachteil sein. Beispielsweise wenn er Closed-Source Software vertreibt. Aber in meinem Fall ist kommt mir der Umstand, das man Java Programmen dekompilieren kann, sehr gelegen.
Wie kann ich Java Programme dekompilieren?
Für das dekompilieren von Javaprogrammen gibt es verschiedene Software. Nummer Eins ist hierbei der Jad - the fast JAva Decompiler[1]. Für JAD gibt es auch viele Versionen mit einer GUI (grafischen Oberfläche), da das Tool selbst für die Kommandozeile ist. Mit Jad kann man im Gegensatz zu andrer Java-Decompilern, Java Programme sehr schnell dekompilieren. Da Jad in C++ geschrieben ist und nicht wie viele andere Decompiler in Java.
Für das dekompilieren meines Java Programms habe ich den DJ Java Decompiler[2] benutzt. Das Tool ist zwar keine Freeware, aber glänzt durch seine einfache Bedienweise. Ich kann das Tool nur empfehlen, habe aber auch nicht viele andere Decompiler testen können.
[1]
Jad Decompiler
[2]
DJ Java Decompiler