Question

J'ai une interface avec une zone de liste pour afficher la liste des méthodes de la classe. Je peux y parvenir en utilisant la réflexion. Mais puis-je voir le code source dans une autre zone de texte sur le choix du nom de la méthode?

Je connaissais décompilateurs. mais je ne veux pas voir le code source dans leur fenêtre.

Je veux utiliser une thirdparty lib afin que je puisse voir le code source de la méthode spécifique dans mon propre GUI.

S'il vous plaît suggérer s'il y a une API disponible pour cela.

Était-ce utile?

La solution

Vous aurez besoin d'un décompilateur de quelque sorte, que vous pouvez établir un lien. Je ne suis pas sûr il y a des bibliothèques, mais voici un lien vers le JD Java Decompiler .

Rappelez-vous que vous perdez des noms de variables et comme lors de la compilation, donc si vous décompiler le code source résultant peut être moins lisible.

Si vous avez accès à la source que vous pouvez lier aux fichiers de classe, et trouver la source de la méthode choisie dans les fichiers source liés. Ceci peut être réalisé par un simple passage Parse des fichiers source.

Votre plus gros problème sera de déterminer quand une fin de la méthode, et une solution simple est de compter { et de } et de déterminer le moment où la { de la déclaration de la méthode est fermée.

Autres conseils

Ceci est une vieille question, mais en voyant que le paysage decompiler a considérablement changé au cours de la dernière année, je pense qu'il vaut la peine de ressusciter.

Procyon est un framework open source qui contient, entre autres, un décompilateur Java. Il est écrit en Java et les API decompiler peut être intégré dans une autre application assez facilement. En fait, il y a déjà deux GUI tiers frontaux, y compris le SecureTeam Java Decompiler .

CFR n'a pas le code source encore disponible, mais il est aussi un excellent décompilateur. Il est aussi écrit en Java, et alors que je ne l'ai pas essayé de l'intégrer à une application existante, il devrait certainement être possible.

Je demande une fois créé qui comprenait son propre lecteur de code source. Je pense qu'il est une bonne alternative à décompilateurs, qui peut venir avec des dépendances tout à fait.

J'utilisais NetBeans donc emballer les fichiers .java était aussi facile que de changer une option de filtre. J'ai vérifié propriétés java pour trouver le fichier jar et scanné comme tout fichier zip pour les fichiers source java. Avec cette approche ayant une interface graphique avec JTreeTable peuplé de fichiers source et JTextArea afficher le code source était trivial.

Je crois que vous pourriez faire la même chose avec plus d'un pas plus - clipping la source pour ne contenir que la méthode choisie. Je pense qu'il devrait faire bouillir jusqu'à l'analyseur simple, qui compte l'ouverture et la fermeture entre parenthèses.

Je laisse la réponse plus tôt au cas où vous en avez besoin, mais JODE n'a pas été mis à jour depuis longtemps. Autour de la recherche, je ne trouve pas decompiler qui est open-source ou disponible sous forme de bibliothèque.

JODE peut être juste ce que vous voulez. Le décompilateur de base est publié en tant que bibliothèque sous la licence GNU LGPL, vous pouvez l'intégrer dans votre programme sans problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top