„Java Decompiler“ – Versionsunterschied
[ungesichtete Version] | [gesichtete Version] |
K Klammern korrigiert Markierung: Zurückgesetzt |
Der Artikel betrachtet einen bestimmten Java Decompiler und nicht alle. Im Artikel Opera wirst ja auch nicht allen anderen Browsern je einen Absatz spendieren Markierung: Manuelle Zurücksetzung |
||
Zeile 31: | Zeile 31: | ||
Eine [[Abspaltung (Softwareentwicklung)|Abspaltung]] von JDEclipse-Realign durch Martin „Mchr3k“ Robertson<ref>[http://mchr3k.github.com/jdeclipse-realign/ Martin „Mchr3k“ Robertson – JDEclipse-Realign.] Version 1.1.2 vom 6. Januar 2013. Abgerufen am 19. Januar 2013. Gehostet bei [[GitHub]].</ref> erweiterte 2012 die Funktionalität um eine manuelle Steuerung der Decompilation und Unterstützung für Eclipse 4.2 (Juno) und 4.3 (Kepler). |
Eine [[Abspaltung (Softwareentwicklung)|Abspaltung]] von JDEclipse-Realign durch Martin „Mchr3k“ Robertson<ref>[http://mchr3k.github.com/jdeclipse-realign/ Martin „Mchr3k“ Robertson – JDEclipse-Realign.] Version 1.1.2 vom 6. Januar 2013. Abgerufen am 19. Januar 2013. Gehostet bei [[GitHub]].</ref> erweiterte 2012 die Funktionalität um eine manuelle Steuerung der Decompilation und Unterstützung für Eclipse 4.2 (Juno) und 4.3 (Kepler). |
||
== Verschiedene Java-Decompiler == |
|||
=== Procyon <ref>[https://github.com/mstrobel/procyon Version 0.6.0 Procyon vom 02/2022]</ref> === |
|||
Dieser in [[Java]] Version 6 geschriebene Dekompiler ist besonders zuverlässig in folgenden Situationen: |
|||
* <code>Enum</code>- und <code>String</code>-basierte <code>switch</code>-Anweisungen |
|||
* Lokale Klassen (anonym und benannt) |
|||
* Anmerkungen |
|||
* Java-Lambda-Ausdrücke und Methodenverweise der Version 8 (z. B. <code>::</code>-Operator). |
|||
Ein häufiges Problem besteht darin, dass Klassen, die mit der [[Eclipse (Software)|Eclipse]]-Umgebung kompiliert wurden, möglicherweise nicht vollständig korrekte Ergebnisse liefern. Dies tritt am häufigsten bei <code>String</code>-basierten <code>switch</code>-Anweisungen auf. |
|||
[https://github.com/deathmarine/Luyten Luyten] eine GUI für Procyon. |
|||
=== CFR === |
|||
Kostenlos, kein Quellcode verfügbar.<ref>[http://www.benf.org/other/cfr/ www.benf.org]</ref> |
|||
Der 2015 aktualisierte und vollständig in der Programmiersprache [[Java]] 6 geschriebene „CFR“-Decompiler unterstützt die Java-Versionen 6, 7 und 8 und ist in der Lage, erweiterte Java-Funktionen zu dekompilieren, wie zum Beispiel: |
|||
* Lambda-Ausdrücke ab Java Version 8 |
|||
* <code>String</code>-basierte <code>switch</code>-Anweisungen aus Java Version 7 |
|||
=== JAva_Decompiler === |
|||
JAD ist seit langem einer der am häufigsten verwendeten Dekompiler der Programmiersprache Java. JAD ist vollständig in der Programmiersprache [[C++]] geschrieben, wurde seit 2011 nicht mehr aktualisiert und hat seine Funktionalität gegenüber modernen Sprachen wie Java Version 5 und höher längst verloren. |
|||
=== Fernflower<ref>[http://the.bytecode.club/fernflower.txt the.bytecode.club]</ref><ref>[https://github.com/fesh0r/fernflower github.com] </ref> === |
|||
Open Source. Schöpfer: Egor Ushakov. |
|||
Dieser sich schnell entwickelnde analytische Dekompiler wurde zuletzt im Jahr 2015 aktualisiert und wird bald ein integrierter Bestandteil der Programmierumgebung [[IntelliJ IDEA|Intellij]] Version 14 sein. Er ist kompatibel und unterstützt alle Versionen der Programmiersprache [[Java]]“. und inklusive Java Version 6. |
|||
=== JD<ref>[http://jd.benow.ca/ jd.benow.ca]</ref> === |
|||
Kostenlose Software zur nichtkommerziellen Nutzung. Schöpfer: Emmanuel Dupuy. |
|||
Dieser Decompiler wurde zuletzt im Jahr 2014 aktualisiert und verfügt über eine eigene visuelle Oberfläche und Plugins für die Entwicklungsumgebungen [[Eclipse (Software)|Eclipse]] und [[IntelliJ IDEA|Intellij]]. JD ist vollständig in der Programmiersprache [[C++]] geschrieben und unterstützt nur Version 5 der Programmiersprache [[Java]]. |
|||
=== AndroChef<ref>[http://www.neshkov.com/ac_decompiler.html www.neshkov.com]</ref> === |
|||
Unterstützung bis Java Version 6. |
|||
== Weblinks == |
== Weblinks == |
Aktuelle Version vom 6. Juli 2024, 23:05 Uhr
JD – Java Decompiler
| |
---|---|
JD mit dekompilierter Klasse von equinox.jar | |
Basisdaten
| |
Entwickler | Emmanuel Dupuy |
Aktuelle Version | JD-Core 1.1.3, JD-GUI 1.6.6, JD-Eclipse 2.0.0, JD-IntelliJ 0.6 |
Betriebssystem | Plattformübergreifend |
Programmiersprache | Java |
Kategorie | Softwaretechnik |
Lizenz | „free for non-commercial use“ (closed source, MIT-Haftungsausschluß) |
java-decompiler.github.io |
Java Decompiler (JD) ist ein Decompiler für die Programmiersprache Java. JD wird als GUI-Werkzeug sowie in Form von Plugins für die Eclipse IDE (JD-Eclipse) sowie IntelliJ IDEA (JD-IntelliJ) bereitgestellt.
JD unterstützt alle Java-Versionen von 1.1.8 bis 10.0.0 sowie JRockit 90_150, Jikes 1.2.2, Eclipse Java Compiler und Apache Harmony und wird daher oft dort eingesetzt, wo früher der populäre Jad (Dekompilierer) im Einsatz war.
JD-Eclipse 0.1.3 unterstützte Eclipse bis einschließlich Version 3.7 (Indigo), Version 0.1.4 enthält Korrekturen für Eclipse Juno (4.2) und Kepler (4.3), eine als Update-Archiv erhältliche Snapshot-Version 0.1.5-20131120 weitere signifikante Korrekturen. Zur Ansicht dekompilierten Codes muss die Ansicht „Class file editor“ für Bytecode ohne vorhandene Quellen manuell aktiviert werden[1].
Varianten
[Bearbeiten | Quelltext bearbeiten]Auf Initiative von Alex Kosinsky entstand 2011 eine Variante[2] von JD-Eclipse, die die Ausrichtung von dekompiliertem Code an den Zeilennummern des Originals erlaubt, die oftmals als Debug-Informationen im Bytecode enthalten sind.
Eine Abspaltung von JDEclipse-Realign durch Martin „Mchr3k“ Robertson[3] erweiterte 2012 die Funktionalität um eine manuelle Steuerung der Decompilation und Unterstützung für Eclipse 4.2 (Juno) und 4.3 (Kepler).
Weblinks
[Bearbeiten | Quelltext bearbeiten]Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Alexey Zvolinskiy: Fruzenshtein's notes. JD – Java decompiler. 1. April 2013, abgerufen am 2. Januar 2014.
- ↑ Alex Kosinsky – Realignment for JD-Eclipse. Version 1.0.2 vom 11. August 2011. Abgerufen am 19. Januar 2013. Gehostet bei SourceForge.
- ↑ Martin „Mchr3k“ Robertson – JDEclipse-Realign. Version 1.1.2 vom 6. Januar 2013. Abgerufen am 19. Januar 2013. Gehostet bei GitHub.