2015-09-18 3 views
6

Ich benutze Intellij Idea 14 arbeiten mit großen Java-Projekt, wo viel Code kompiliert wird und ohne Quellen.Wie dekompiliere ich mit der richtigen Zeilennummer mit Hilfe von Fernblume?

Soweit ich weiß Idea nicht um eine Suche in kompilierten Code machen (wie eclipse der Fall ist), aber es kann einzelne Datei dekompilieren mit build-in fernflower und das gibt auch die Möglichkeit, durch kompilierten Code zu debuggen.

Gibt es eine Möglichkeit, den gesamten kompilierten Code auf die gleiche Weise zu dekompilieren, wie Idea es tut, und es an das Projekt anzuhängen, so dass "Project and Libs" durchsucht werden konnte, ohne die Debugging-Funktion in dekompilierten Quellen zu verlieren?

Ich habe versucht, Bytecodeviewer mit verschiedenen fernflower Optionen, aber das Ergebnis war, dass das Debuggen gebrochen war (falsche Linien gezeigt), nachdem die dekompilierten Quellen anzubringen. mit build-in Intellijfernflower Decompiler

+0

Ich glaube nicht, dass jeder Decompiler ursprüngliche Zeilennummern pervertieren kann. Ich wäre erstaunt, wenn Sie mit dekompilierten Quellen in Eclipse korrekt debuggen können. – Amila

+1

nicht sicher über Sonnenfinsternis, aber Intellij Idea macht diese Magie. http://blog.jetbrains.com/idea/2015/02/debug-decompiled-code-with-intellij-idea-14-1/ – hahn

+0

Das ist eigentlich ziemlich interessant, danke @hahn. – Amila

Antwort

0

ok, da es keine Nachrichten über diese sind, habe ich ein kleines Plugin erstellt, die die JAR-Datei mit kompilierten Code zu neuen *-sources.jar Datei dekompiliert und legt Quellen zu projizieren. Interessierte können einen Blick auf decompile and attach Plugin in jetbrains nehmen Repository meine Frage nach Zeilennummern-Plugin in dekompiliert Code fernflower

aktualisieren beantworten. Ich fand 'decompiler.use.line.table' Flag in Intellij 's fernflower, die Zeilennummern erhält.

+0

Wo ist diese Flagge? In welcher Datei? – KilleKat

+1

@KilleKat Diese Flagge wurde umbenannt. Wenn Sie Intellijs Registrierung öffnen, sollten Sie in der Lage sein, Schlüssel zu finden, die das Wort "decompiler" enthalten. In der neuesten IDEA wird dies als "decompiler.dump.original.lines" und "decompiler.use.line.mapping" – hahn

3

fand ich, dass auf OSX Sie diese Einstellung in der Datei ändern können:

~/Library/Preferences/IntelliJIdea2016.1/Optionen/options.xml

Fügen Sie die folgenden Eigenschaften :

<property name="decompiler.use.line.mapping" value="true" /> 
    <property name="decompiler.dump.original.lines" value="true" /> 
+2

oder über Cmd + Shift + A -> Registrierung in Intellij benannt – hahn

Verwandte Themen