J'utilise ant
pour créer des fichiers .jar dans Eclipse. Fonctionne très bien.
J'ai un fichier .jar sur lequel je travaille qui s'attend à ce que le code se trouve dans un fichier .jar (il recherche les fichiers .properties dans le même répertoire que le fichier .jar) - Eclipse standard "Run" et "Debug" les menus exécutent la méthode main()
d'une classe Java classe Java spécifiée ... mais ils le font à partir du répertoire contenant les fichiers de classe compilés, pas un fichier jar. Existe-t-il un moyen modifier ce comportement afin qu'Eclipse exécute du code à partir du fichier .jar approprié?
(Ma solution de contournement consiste à exécuter le fichier .jar en externe, suspendu en attendant un débogueur, par réponse de Dave Ray à l'une de mes autres questions .)
Oui, vous pouvez créer un "Run Configuration
" Personnalisé:
C'est-à-dire un "Java Application
", Avec:
Classpath
tab vidé de son contenu par défaut (le répertoire .class
) et avec le pot ajoutéSource
tab avec son contenu par défaut (doit référencer le répertoire src
du projet)Une telle configuration peut être exécutée ou déboguée.
(Exemple de configuration personnalisée avec des jars comme entrées utilisateur)
Vous pouvez utiliser le débogage à distance en exécutant votre jar comme ceci
Java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar yourJar.jar
Et puis vous connecter depuis votre IDE à ce port
Je viens de trouver le lien suivant, qui décrit toute la procédure afin de déboguer un pot Java à distance.
Débogage Java applications à distance avec Eclipse
Les parties principales sont:
Cible VM agit comme serveur de débogage
Java -Xdebug -Xrunjdwp: transport = dt_socket, server = y, address = "8000" -jar test.jar
Cible VM agit comme client de débogage
Java -Xdebug -Xrunjdwp: transport = dt_socket, address = 127.0.0.1: 8000, suspend = y -jar test.jar
En fonction de la façon dont vous exécutez la machine virtuelle cible, le client ou le serveur, vous devez configurer Eclipse différemment.
Configuration Eclipse si vous démarrez le VM cible en tant que client
Configuration Eclipse si vous démarrez le VM cible en tant que serveur
L'article donne également une introduction en douceur au sujet.