ANT-Java Tasks mit Eclipse debuggen

Oft nutzen große Projekte Ant oder Maven um ihre Javaklassen zu kompilieren, zu packen und evtl. zu deployen. Ich selber nutze oft Ant und habe mich schon immer gefragt wie ich eine Java Applikation die ich per Ant gestartet habe debuggen kann. Da die Applikation dann ja nicht aus Eclipse heraus aufgerufen wird kann man nicht direkt Breakpoints setzen und die Anwendung debuggen. Oft braucht man aber den Debugger um Probleme und logische Fehler schneller finden zu können.

Daher habe ich mich mal was umgeschaut und eine echt gute Lösung (siehe auch eclipse.org) gefunden :).

Man erweitert einfach seinen Ant-Task welcher die JVM startet:

<target name="remoteJava" description="Launches a Java program for remote debug">
   <java classname="samples.example.Run" classpath="${project_dir}/bin" fork= "true">
      <jvmarg value="-Xdebug"/>
      <jvmarg value="-Xnoagent"/>
      <jvmarg value="-Djava.compiler=NONE"/>
      <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"/>
   </java>
</target>

Der Classpath und der Classname müssen natürlich angepasst werden, wichtig ist nur der jvmarg Teil. Hier werden der JVM diverse Parameter mitgegeben, unter anderem ein Port, hier 8000. Auf diesem wartet die JVM dann auf einen externen Debugger der sich einfach einklinken kann, Remote-Debugging heißt das Ganze dann.

In Eclipse geht man dann wie folgt vor:

  1. ANT Task starten der mit Debug Infos ausgerüstet ist, dieser wartet dann auf Eclipse
  2. In Eclipse: Run > Debug Configurations (manchmal auch „Open Debug Dialog„)
  3. Per „New“ oben in der Ecke einen neuen Anlegen, Port korrekt wählen (hier 8000)
  4. Häckchen bei „Allow termination of remote VM
  5. Debug“ klicken

In Bildern:

image11

image21

image3

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert