<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>full fathom five: Java snippet: Debugging a Java library used from Ant</title>
    <link>http://www.michaelstudman.com/fullfathomfive/articles/2006/09/01/java-snippet-debugging-a-java-library-used-from-ant</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>the blog of Michael Studman</description>
    <item>
      <title>Java snippet: Debugging a Java library used from Ant</title>
      <description>&lt;p&gt;I recently needed to debug a library which seemed to be misbehaving when used within Ant. After a bit of research here&amp;#8217;s the best way I found to debug within Ant that doesn&amp;#8217;t require sprinkling your bin/ant or bin\ant.bat with temporary JPDA pixy dust.&lt;/p&gt;

&lt;p&gt;Ant doesn&amp;#8217;t directly accept the -X arguments needed to set up the JPDA settings so the question is: how do you pass these from a shell or command line? In this, the ANT_OPTS environment variable is your friend. Its contents will be directly passed to the Java process Ant calls.&lt;/p&gt;

&lt;p&gt;So here&amp;#8217;s how you do it:&lt;/p&gt;

&lt;p&gt;Step 1: Set ANT_OPTS to the debug options appropriate for your JVM:&lt;/p&gt;

&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_default "&gt;for Java 1.4:

&amp;gt;&amp;gt; export ANT_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8453

for Java 1.5:

&amp;gt;&amp;gt; export ANT_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8453
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Step 2: Run ant like normal:&lt;/p&gt;

&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_default "&gt;  
&amp;gt;&amp;gt; ant
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Step 3: Set your breakpoints.&lt;/p&gt;

&lt;p&gt;Step 4: Now attach your debugger.&lt;/p&gt;

&lt;p&gt;There might be better ways to do this but this was the least invasive route for me.&lt;/p&gt;</description>
      <pubDate>Fri, 01 Sep 2006 09:05:02 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:6963d35f-f1ad-4f81-8f2e-3bd966c39dd5</guid>
      <author>Michael Studman</author>
      <link>http://www.michaelstudman.com/fullfathomfive/articles/2006/09/01/java-snippet-debugging-a-java-library-used-from-ant</link>
      <category>Java</category>
      <category>Development</category>
      <category>java</category>
      <category>ant</category>
      <category>development</category>
      <category>snippet</category>
    </item>
  </channel>
</rss>
