2016-06-01 1 views
1

Existe-t-il un moyen de déboguer une application Java démarrée via Eclipse Equinox? Quelque chose de similaire au ".net reflector" fait avec C#. Nous avons ce grand programme qui a été développé il y a des années par une équipe interne et nous devons comprendre comment cela fonctionne afin que nous puissions le recréer dans une autre langue. Le problème est que nous n'avons pas de fichier de code sorce (tout a été perdu).Déboguer un programme Java Equinox compilé

En ce moment, le répertoire de l'application contient: - "espace de travail" Dir - - Dir "configuration" - Dir "intégration" - Dir "plugins" - Dir "Outils" starter.exe (avec logo de l'éclipse comme icône) - starter.ini - startup.jar

J'espère vraiment qu'il y a un moyen de réapprendre comment l'application a fonctionné.

Merci :)

+1

Je pense qu'un décompilateur java est ce dont vous avez besoin, jetez un oeil à [this] (http://www.thecrazyprogrammer.com/2015/07/5-best-java-decompilers.html) – niceman

+0

@niceman J'ai déjà essayé jd-gui, mais cela ne fonctionne pas avec les applications qui utilisent equinox (le programme part d'un exe). De plus, il ne me permet pas de déboguer l'attachement à l'exécution exe/jar – titanicsnake

+0

java Decompilers prend les fichiers .class pas .exe (ils peuvent accepter le fichier .jar car un fichier jar est juste une archive contenant des fichiers .class), si jd- gui n'a pas accepté de fichier jar, désarchivez-le (clic droit -> Extract) pour obtenir les fichiers .class. – niceman

Répondre

0

On dirait que je réussi à résoudre mon problème. Voici ce que je l'ai fait:

  • Téléchargé Eclipse Mars (4.5.2)
  • Dans Eclipse, je l'ai choisi "Aide" -> "Installer un nouveau logiciel" et a ajouté le site de dépôt "mchr3k - http://mchr3k-eclipse.appspot.com/".
  • De là, j'ai téléchargé le "plug-in Eclipse Java decompiler"
  • Créé un nouveau projet java temporaire et ajouté tout le .jar que je voulais déboguer au chemin de construction du projet.
  • Ajout de cette ligne dans le fichier "launcher.ini" contenu dans le répertoire de l'application que je voulais déboguer: "-Xdebug -Xrunjdwp: transport = socket_dt, adresse = 127.0.0.1: 8888, server = y, suspend = n "
  • a lancé un « débogage à distance » d'Eclipse

en faisant cela, je peux attacher le débogueur Eclipse à mon application et utilisez le code source decompild.