[JAVA] J'ai créé une interface de ligne de commande avec WinMerge Plugin en utilisant JD-Core

01_title.jpg

À propos de JD-CLI

__Java __ __ Decompiler __ qui frappe sur la ligne de commande et affiche le résultat sur la ligne de commande.

À propos de JD

Décompilateur Java capable de compiler des fichiers de classe Java 5 ou version ultérieure également utilisés dans Eclipse (Référence) To JD Project JD-CLI utilise la bibliothèque principale JD-Core utilisée dans ce JD.

comment utiliser

Allez sur ici ["Jd-cli-windows-1.0.0.zip"] dans Assets (https://github.com/jd-wrapper/jd-cli/releases/download/v1.0.0/jd-cli-windows-1.0 Téléchargez le fichier zip .0.zip "DL"). Après décongélation, le contenu ressemble à ceci. 02_arch.jpg Depuis la ligne de commande, vous pouvez obtenir le résultat avec jd-cli [fichier que vous voulez décompiler]. 09_res_jd.jpg Les autres options sont les suivantes

> 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)

À propos du plugin WinMerge

Il y a un dossier appelé WinMergePlugins dans le dossier décompressé, et si vous le suivez, il existe deux types de dossiers, un pour exe et un pour jar. Par exemple, le contenu de For exe est le suivant 03.jpg Si WinMerge est installé, exécuter install.bat dans le dossier avec les privilèges d'administrateur le copiera dans le dossier installé. Après cela, veuillez vérifier en déployant le plug-in dans WinMerge.

Voici les résultats de la comparaison des derniers common-lang3 commons-lang3-3.10 et commons-lang3-3.11. 04_res_exec.gif Avec l'expansion automatique, la comparaison est effectuée en environ 87013 ms (317 fichiers). (Au fait, la version Jar est 85174ms. Il semble que c'est environ 10ms plus rapide par fichier. Si vous avez java8 ou plus et que le chemin passe, la version Jar peut être plus rapide.

La source est ...

JD-ECLIPSE Regardez la source et respectez les bons points. Je l'ai également apporté tel quel. (Bien sûr, la partie licence ne sera pas effacée.) Le chemin complet du nom de fichier était la valeur par défaut, donc tous les fichiers seront interceptés lorsqu'ils diffèrent. Correction de la prise en charge des versions de chemin non complet. De plus, le processus de remplacement lorsque UNICODE était inclus dans le chemin du fichier était incorrect, je l'ai donc corrigé. (Résolution du chemin comme org / util / reader devenant org // til / reader)

De côté

Ce qui suit est un aparté, mais ...

Je portais ...

Je l'ai vérifié quand je l'ai fait, et je l'ai fait parce que ce n'était pas là, mais il y avait des gens qui avaient déjà fait la même chose. .. ..

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

Presque la même idée car il n'est pas converti en exe. Est-ce plus sophistiqué parce que vous pouvez modifier le modèle de sortie? Eh bien, veuillez l'utiliser correctement. .. ..

Les versions OSX et Linux sont également disponibles

Je l'ai fait en référence à Gradle de JD-GUI, alors vérifiez la source

gradlew build

Ensuite, la version Linux et la version OSX seront affichées. Mais je ne l'ai pas testé, donc je ne l'ai jamais sorti. D'une manière ou d'une autre, il semble avoir une option spécifique à l'interface graphique.

finalement

Mise à jour liée à Java (ou plutôt à l'article lui-même) après une longue période. J'ai commencé avec l'envie de comparer les classes avec WinMerge. Il y avait un ancêtre à la toute fin, et j'étais fou J'ai beaucoup appris sur la réduction des fichiers jars, l'exécution avec launch4j et la création d'un Zip récapitulatif avec les distributions. C'est incroyable que tout le monde soit doué pour utiliser gradle. .. ..

Recommended Posts

J'ai créé une interface de ligne de commande avec WinMerge Plugin en utilisant JD-Core
J'ai créé un robot LINE avec Rails + heroku
J'ai créé un plug-in qui exécute jextract avec des tâches Gradle
J'ai créé une interface graphique avec Swing
J'ai fait une mort risquée avec Ruby
J'ai créé un plug-in pour IntelliJ IDEA
J'ai créé une application Janken avec kotlin
J'ai créé une application Janken avec Android
[LINE BOT] J'ai créé un Ramen BOT avec Java (Maven) + Heroku + Spring Boot (1)
04. J'ai fait un frontal avec SpringBoot + Thymeleaf
J'ai fait de l'art de la mosaïque avec des images Pokemon
J'ai fait un blackjack avec Ruby (j'ai essayé d'utiliser minitest)
[Rails] J'ai créé une fonction de brouillon en utilisant enum
J'ai fait un portfolio avec Ruby On Rails
[Ruby] J'ai fait un robot avec de l'anémone et du nokogiri.
J'ai créé un schéma de verrouillage à l'aide de la touche de volume avec l'application Android. Édition fragmentée
J'ai créé un environnement de développement avec rails6 + docker + postgreSQL + Materialise.
J'ai créé un MOD qui appelle instantanément un véhicule avec Minecraft
J'ai créé un système d'exemple MVC simple à l'aide de Spring Boot
J'ai créé un Dockerfile pour démarrer Glassfish 5 en utilisant Oracle Java
J'ai créé une application de chat.
[Rails] J'ai créé une mini-application de calendrier simple avec des spécifications personnalisées.
Je veux créer un bouton avec un saut de ligne avec link_to [Note]
[Unity] J'ai essayé de créer un plug-in natif UniNWPathMonitor en utilisant NWPathMonitor
J'ai créé un formulaire de recherche simple avec Spring Boot + GitHub Search API.
Exécutez un modèle simple réalisé avec Keras sur iOS à l'aide de CoreML
Ce que je n'aime pas lors de l'utilisation de l'interface d'une fonction avec des arguments par défaut dans Kotlin depuis Java
Branchement conditionnel avec une interface fluide
J'ai créé une application shopify @java
J'ai essayé d'utiliser JOOQ avec Gradle
J'ai fait une simple fonction de recommandation.
Créer une application en ligne de commande avec maven
Gestion des exceptions avec une interface fluide
Créez des exceptions avec une interface fluide
J'ai créé une application correspondante (application Android)
J'ai créé un outil de génération package.xml.
[Android] J'ai créé une application de podomètre.
J'avais des problèmes au travail, j'ai donc créé un plug-in IntelliJ
J'ai créé un site qui résume les informations sur la restriction du sucre avec Vue.js