2008-09-26 5 views

Répondre

198

J'ai this article marqué comme signet lors de la configuration avec Eclipse for Java 5 et ci-dessous.

Fondamentalement run it with:

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

Pour Eclipse avec Java 5 and above, exécutez avec:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044 
403

Avant Java 5.0, utilisez -Xdebug et -Xrunjdwp arguments. Ces options fonctionneront toujours dans les versions ultérieures, mais fonctionneront en mode interprété au lieu de JIT, qui sera plus lent.

de Java 5.0, il est préférable d'utiliser le -agentlib:jdwp option unique:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044 

Options sur -Xrunjdwp ou agentlib:jdwp arguments sont les suivants:

  • transport=dt_socket: désigne le mode utilisé pour se connecter à JVM (socket est un bon choix, il peut être utilisé pour déboguer un ordinateur distant)
  • address=8000: port TCP/IP exposé, pour se connecter depuis le débogueur,
  • suspend=y: si 'y', dites à la JVM d'attendre que le débogueur soit attaché pour commencer l'exécution, sinon (si 'n'), commence l'exécution immédiatement.
+6

Vous êtes tout à fait correct .. J'ai essayé avec ** - Xdebug ** et ** - ** Xrunjdwp mais il n » ai pas t travail. quand j'ai essayé avec ** - Xrunjdwp ** ou ** agentlib: jdwp ** Ça marche.(sur Java 7) – RoboAlex

+0

Cela a seulement fonctionné pour moi quand je mets des citations autour, sinon j'ai eu cette erreur: ERREUR: JDWP Transport non-serveur serveur dt_socket = y suspend = y address = 8000 doit avoir une adresse de connexion spécifiée par le ' address = 'option – Ring

+1

Est-ce que 'Xrunjdwp' est déprécié (ou supprimé?) pourquoi devrions-nous choisir' agentlib: jdwp' par-dessus? – ArtOfWarfare

4

Pour Java 1.5 ou plus:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName> 

pour Java 1.4:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName> 

pour Java 1.3:

java -Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName> 

Voici la sortie d'un programme simple:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 HelloWhirled 
Listening for transport dt_socket at address: 1044 
Hello whirled 
1

Il y a beaucoup de problèmes d'environnement si vous utilisez Maven. Donc, si vous démarrez votre programme depuis Maven, exécutez simplement la commande mvnDebug au lieu de mvn et attachez un débogueur sur le port 8000. Vous vous occupez de tous les problèmes d'environnement.

Questions connexes