Je suppose que vous voulez pouvoir utiliser le débogage pas à pas d'Eclipse. Vous pouvez simplement exécuter les classes en externe en définissant les classes construites dans les répertoires bin sur le chemin de classe JRE.
java -cp workspace\p1\bin;workspace\p2\bin foo.Main
Vous pouvez déboguer à l'aide du débogueur distant et en tirant parti des fichiers de classe intégrés à votre projet.
Dans cet exemple, la structure du projet Eclipse ressemble à ceci:
workspace\project\
\.classpath
\.project
\debug.bat
\bin\Main.class
\src\Main.java
1. Démarrez la console JVM en mode débogage
debug.bat est un fichier de commandes Windows qui doit être exécuté en externe à partir d'une console cmd.exe .
@ECHO OFF
SET A_PORT=8787
SET A_DBG=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=%A_PORT%,server=y,suspend=y
java.exe %A_DBG% -cp .\bin Main
Dans les arguments, le port de débogage a été défini sur 8787 . L' argument suspend = y indique à la JVM d'attendre que le débogueur se connecte.
2. Créez une configuration de lancement de débogage
Dans Eclipse, ouvrez la boîte de dialogue Débogage (Exécuter> Ouvrir la boîte de dialogue de débogage ...) et créez une nouvelle configuration d' application Java distante avec les paramètres suivants:
- Projet: le nom de votre projet
- Type de connexion: Standard (Socket Attach)
- Hôte: localhost
- Port: 8787
3. Débogage
Donc, tout ce que vous avez à faire à chaque fois que vous souhaitez déboguer l'application est:
- définir un point d'arrêt
- lancer le fichier batch dans une console
- lancer la configuration de débogage
Vous pouvez suivre ce problème dans le bogue 122429 . Vous pouvez contourner ce problème dans votre application en utilisant une couche d'abstraction comme décrit ici .
System.out
etSystem.in
pour être suffisant pour mon cas d'utilisation et abandonné l'utilisationSystem.console()
.