[JAVA] Ich habe mit JD-Core eine Befehlszeilenschnittstelle mit dem WinMerge Plugin erstellt

01_title.jpg

Informationen zu JD-CLI

__Java __ __ Decompiler __, der auf die Befehlszeile trifft und das Ergebnis in der Befehlszeile ausgibt.

Über JD

Java-Dekompiler, der Java 5-Klassendateien oder höher kompilieren kann, die auch in Eclipse verwendet werden (Referenz) zu JD Project JD-CLI verwendet die in diesem JD verwendete Kernbibliothek JD-Core.

wie benutzt man

Gehen Sie zu hier ["Jd-cli-windows-1.0.0.zip"] in Assets (https://github.com/jd-wrapper/jd-cli/releases/download/v1.0.0/jd-cli-windows-1.0 Laden Sie die ZIP-Datei .0.zip "DL") herunter. Nach dem Auftauen sieht der Inhalt so aus. 02_arch.jpg Über die Befehlszeile können Sie das Ergebnis mit jd-cli [Datei, die Sie dekompilieren möchten] abrufen. 09_res_jd.jpg Andere Optionen sind wie folgt

> jd-cli.exe -h
example:
jd-cli(.exe) Example.class
jd-cli(.exe) -b example.jar org.aaa.Example.class
jd-cli(.exe) -b org\aaa Example.class

usage:
 classes...      : Specify the class files...
 -b (--base) VAL : Specify the reference directory or Jar file.
 -h (--help)     : Show helps. (default: false)
 -l (--loc)      : Show full classpath. (default: false)
 -m (--meta)     : Show metadatas.(e.g. Filename, Java versions..) (default:false)
 -n (--line)     : Show Line Number. (default: false)
 -r (--real)     : Realignment Line Number. (default: false)
 -u (--unicode)  : Escapes Unicode Charset. (default: false)

Über das WinMerge Plugin

Im entpackten Ordner befindet sich ein Ordner namens WinMergePlugins. Wenn Sie ihm folgen, gibt es zwei Arten von Ordnern, einen für exe und einen für jar. Zum Beispiel ist der Inhalt von For exe wie folgt 03.jpg Wenn WinMerge installiert ist, wird es durch Ausführen von install.bat in dem Ordner mit Administratorrechten in den installierten Ordner kopiert. Überprüfen Sie anschließend das Plug-In in WinMerge.

Unten sehen Sie das Ergebnis des Vergleichs von commons-lang3-3.10 und commons-lang3-3.11 der neuesten common-lang3. 04_res_exec.gif Bei der automatischen Erweiterung wird der Vergleich in ca. 87013 ms (317 Dateien) durchgeführt. (Die Jar-Version ist übrigens 85174 ms. Es scheint, dass sie pro Datei etwa 10 ms schneller ist. Wenn Sie Java8 oder mehr haben und der Pfad vergeht, ist die Jar-Version möglicherweise schneller.

Die Quelle ist ...

JD-ECLIPSE Schauen Sie sich die Quelle an und respektieren Sie die guten Punkte. Ich habe es auch so gebracht, wie es ist. (Natürlich wird der Lizenzteil nicht gelöscht.) Der vollständige Pfad des Dateinamens war die Standardeinstellung, sodass alle Dateien beim Unterschied abgefangen werden. Behoben, um nicht vollständige Pfadversionen zu unterstützen. Außerdem war der Ersetzungsprozess, als UNICODE in den Dateipfad aufgenommen wurde, falsch, sodass ich ihn behoben habe. (Der Pfad wie org / util / reader wurde zu org // til / reader aufgelöst.)

Beiseite

Das Folgende ist eine Seite, aber ...

Ich trug ...

Ich habe es nachgeschlagen, als ich es gemacht habe, und ich habe es gemacht, weil es nicht da war, aber es gab Leute, die bereits das Gleiche getan hatten. .. ..

kwart/jd-cmd jd-cmd - Command line Java Decompiler

Fast die gleiche Idee, wie es nicht in exe konvertiert wird. Ist es komplexer, weil Sie das Ausgabemuster ändern können? Nun, bitte benutze es richtig. .. ..

OSX- und Linux-Versionen sind ebenfalls verfügbar

Ich habe es mit Bezug auf Gradle von JD-GUI gemacht, also schau dir die Quelle an

gradlew build

Dann werden sowohl die Linux-Version als auch die OSX-Version ausgegeben. Aber ich habe es nicht getestet, also habe ich es noch nie veröffentlicht. Irgendwie scheint es eine GUI-spezifische Option zu geben.

Schließlich

Java-bezogenes (oder besser gesagt der Artikel selbst) Update nach langer Zeit. Ich begann mit dem Wunsch, Klassen mit WinMerge zu vergleichen. Ganz am Ende war ein Vorfahr, und ich war verrückt Ich habe viel über das Minimieren von Jars, das Ausführen mit launch4j und das Erstellen einer zusammenfassenden Zip-Datei mit Distributionen gelernt. Es ist erstaunlich, dass jeder gut mit Gradle umgehen kann. .. ..

Recommended Posts

Ich habe mit JD-Core eine Befehlszeilenschnittstelle mit dem WinMerge Plugin erstellt
Ich habe einen LINE Bot mit Rails + Heroku gemacht
Ich habe ein Plug-In erstellt, das Jextract mit Gradle-Aufgaben ausführt
Ich habe mit Swing eine GUI erstellt
Ich habe mit Ruby einen riskanten Würfel gemacht
Ich habe ein Plug-In für IntelliJ IDEA erstellt
Ich habe eine Janken App mit Kotlin gemacht
Ich habe eine Janken App mit Android gemacht
[LINE BOT] Ich habe einen Ramen BOT mit Java (Maven) + Heroku + Spring Boot (1) gemacht.
04. Ich habe mit SpringBoot + Thymeleaf ein Frontend gemacht
Ich habe Mosaikkunst mit Pokemon-Bildern gemacht
Ich habe mit Ruby einen Blackjack gemacht (ich habe versucht, Minitest zu verwenden)
[Rails] Ich habe eine Entwurfsfunktion mit enum erstellt
Ich habe mit Ruby On Rails ein Portfolio erstellt
[Ruby] Ich habe einen Crawler mit Anemone und Nokogiri gemacht.
Ich habe mit der Lautstärketaste mit der Android-App ein Sperrmuster erstellt. Fragment Edition
Ich habe eine Entwicklungsumgebung mit Rails6 + Docker + PostgreSQL + Materialise erstellt.
Ich habe einen MOD erstellt, der sofort ein Fahrzeug mit Minecraft anruft
Ich habe mit Spring Boot ein einfaches MVC-Beispielsystem erstellt
Ich habe eine Docker-Datei erstellt, um Glassfish 5 mit Oracle Java zu starten
Ich habe eine Chat-App erstellt.
[Rails] Ich habe eine einfache Kalender-Mini-App mit benutzerdefinierten Spezifikationen erstellt.
Ich möchte mit link_to [Hinweis] eine Schaltfläche mit einem Zeilenumbruch erstellen.
[Unity] Ich habe mit NWPathMonitor ein natives Plug-In UniNWPathMonitor erstellt
Ich habe ein einfaches Suchformular mit Spring Boot + GitHub Search API erstellt.
Führen Sie ein einfaches Modell aus, das mit Keras unter iOS mit CoreML erstellt wurde
Was mir bei der Verwendung der Schnittstelle einer Funktion mit Standardargumenten in Kotlin aus Java nicht gefällt
Bedingte Verzweigung mit fließender Schnittstelle
Ich habe eine shopify App @java erstellt
Ich habe versucht, JOOQ mit Gradle zu verwenden
Ich habe eine einfache Empfehlungsfunktion erstellt.
Erstellen Sie eine Befehlszeilen-App mit maven
Ausnahmebehandlung mit einer Fluidschnittstelle
Erstellen Sie Ausnahmen mit einer Fluid-Schnittstelle
Ich habe eine passende App erstellt (Android App)
Erstellen Sie ein Maven-Projekt mit Befehlen
Ich habe ein Tool zur Generierung von package.xml erstellt.
[Android] Ich habe eine Schrittzähler-App erstellt.
Ich hatte Probleme bei der Arbeit und habe ein IntelliJ-Plug-In erstellt
Ich habe mit Vue.js eine Seite erstellt, die Informationen zur Zuckereinschränkung zusammenfasst