J'ai une application Java exécutée sur une machine Linux. J'exécute l'application java en utilisant les éléments suivants:
java myapp -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000, suspend=n
J'ai ouvert le port 4000 pour TCP sur cette machine Linux. J'utilise eclipse depuis une machine Windows XP et j'essaye de me connecter à cette application. J'ai également ouvert le port dans Windows.
Les deux machines sont sur le LAN mais je n'arrive pas à connecter le débogueur à l'application Java. Qu'est-ce que je fais mal?
java
debugging
remote-debugging
dzidzitop
la source
la source
Réponses:
Edit: J'ai remarqué que certaines personnes coupent et collent l'invocation ici. La réponse que j'ai donnée à l'origine ne concernait que le PO. Voici un style d'invocation plus moderne (y compris en utilisant le port plus conventionnel de 8000):
La réponse originale suit.
Essaye ça:
Deux points ici:
runjdwp
option.la source
-agentlib
option de style plus récent pour votre plaisir de couper et coller. :-)Pour JDK 1.3 ou version antérieure:
Pour JDK 1.4
Pour les nouveaux JDK:
Veuillez modifier le numéro de port en fonction de vos besoins.
De Java Technotes
Une dernière chose à noter, dans la documentation de l'interface de JVM Tool :
la source
Pas:
Voir le guide étape par étape sur le débogage à distance Java pour plus de détails.
la source
Réponse couvrant Java> = 9:
Pour Java 9+, l'option JVM nécessite un léger changement en préfixant l'adresse avec l'adresse IP de la machine hébergeant la JVM, ou simplement
*
:Cela est dû à un changement noté dans https://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435 .
Pour Java <9, le numéro de port est suffisant pour se connecter.
la source
Je voudrais souligner que l' ordre des arguments est important .
Pour moi, la
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 -jar app.jar
commande ouvre le port du débogueur ,mais la
java -jar app.jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
commande ne le fait pas .la source
Voici comment configurer le débogueur Eclipse pour le débogage à distance:
Paramètres Eclipse:
1.Cliquez sur le bouton Exécuter 2.Sélectionnez les
configurations de débogage 3.Sélectionnez
«Application Java distante»
4.Nouvelle configuration
Pour JBoss:
1.Changez le
/path/toJboss/jboss-eap-6.1/bin/standalone.conf
dans votre VM comme suit: Décommentez la ligne suivante en supprimant le #:Pour Tomcat:
Dans le fichier catalina.bat :
Étape 1:
Étape 2:
Étape 3: exécutez Tomcat à partir de l'invite de commande comme ci-dessous:
Ensuite, vous devez définir des points d'arrêt dans les classes Java que vous souhaitez déboguer.
la source
JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
ps désolé pour les modifications, combat avec le formateur.