web-dev-qa-db-fra.com

Comment déboguer du code Java lors de l'utilisation du script ANT dans Eclipse

J'ai une classe Java et je dois la déboguer (mettre des points d'arrêt et continuer à utiliser F6). J'utilise ANT script pour initier, générer, déployer et exécuter le code. J'utilise:

<javac srcdir="${src.dir}" destdir="${classes.dir}" debug="true" debuglevel="lines,vars,source">

..........

</javac>

Mais lorsque je place le point d'arrêt dans une ligne de ma classe foo.Java et que je lance le script ant (la partie run, cliquez avec le bouton droit de la souris sur Exécuter -> Debug As -> Ant Build), Eclipse ne s'arrête pas à cette ligne code.

Qu'est-ce que je manque?!

40
zengr

Dans la tâche <Java> ant, vous devez ajouter deux paramètres jvm (<jvmarg> IIRC) pour activer le débogage: 

 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5432

Cela lancera le programme Java avec le débogage activé et le programme sera prêt à accepter les connexions du débogueur sur le port 5432. Vous devez ensuite utiliser la fonction de débogage distant de votre IDE et lui demander de se connecter au port 5432.

30
jkff

(N'a pas été en mesure de commenter la réponse donnée, alors je dois faire une autre réponse)

J'ai réalisé que lors du lancement de Ant à partir d'Eclipse, vous devrez ajouter fork = "true" à la tâche <Java>. En outre, je ne savais pas comment écrire des jvmargs imbriqués, voici donc un exemple:

<Java classname="..." fork="true">
  <jvmarg value="-Xdebug" />
  <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5432" />
  ...
</Java>
49
Samuel Lampa

Voilà comment je l'ai fait travailler pour moi (Juste pour commenter pour référence future).

3
Mehdi
set ANT_OPTS=%ANT_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5432

dans Eclipse

Toolbar >> Run >> Debug Configurations >> + >> 

Donnez les valeurs:

Name: Debug_Ant
Project: active-Eclipse-project
Host:localhost
Port:5432
2
abeym

Ceci est destiné à aider les personnes qui se demandent comment déboguer une application Web utilisant ant pour la construction et le déploiement. Ceci est assez fréquent dans les applications existantes. Si le projet a été lancé en tant que "Projet Web dynamique" au début, les étapes suivantes et même Ant ne sont pas nécessaires. 

Définissez le point de rupture dans votre code.

Window -> Show View -> Others -> Servers

Ajoutez votre serveur JBoss ou Tomcat par exemple.

Faites un clic droit sur le serveur et choisissez 'Debug'.

Assurez-vous que debug = "true" est défini dans le fichier de construction ant.

2
zawhtut

Pas:

1) Configurez le débogueur Java distant avec un hôte local comme nom, une adresse de port sous la forme 8000 (ou quelle que soit l'adresse du port de votre système).

2) Créez un fichier de commandes et conservez-le dans le dossier bin de votre Tomcat (cette étape est nécessaire pour déboguer à distance en conservant le ou les serveurs dans le même système).

dans un fichier batch, vous devriez garder cette ligne: 

set JPDA_ADDRESS = 8000

set JPDA_TRANSPORT = dt_socket

catalina.bat jpda début

après cela, conservez un point d'arrêt dans votre code Java et déboguez ce débogueur distant. ça va marcher.

Bon codage !!

1
Soumya Sarkar

Moi aussi, j'ai fait face à ce problème, j'ai suivi les étapes suivantes pour résoudre le problème.

  1. Mettez les lignes ci-dessous dans le fichier ANT

  2. Accédez aux configurations de débogage-> Application Java distante-> Créez un nouveau fichier de configuration avec le nom du projet, port = 5432 et l'hôte est localhost, puis enregistrez-le.

  3. Maintenant, lancez votre build.xml en mode débogage, vous devriez voir dans la console que "Listening for transport dt_socket at address 5432"

  4. Maintenant, lancez le fichier de configuration de débogage que vous avez configuré. Votre code Selenium s'exécutera maintenant en mode débogage.

J'espère que cela t'aides.

Si vous rencontrez toujours des problèmes, merci de me le faire savoir afin que je puisse vous aider.

Merci

0
user2346563