ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Brown <>
Subject Re: <javah> task
Date Thu, 15 Mar 2012 19:22:11 GMT
Just to close the loop - here is the answer (from Jonathan Gibbons, author of javah):

> I looked at the Ant <javah> task, and it's a simple enough wrapper around whatever
impl of javah it can find.
> The fundamental problem is that back in JDK 5, javah was rewritten for the first time,
but the old code remained available via the -Xold switch.  But, it wasn't a very good rewrite,
so in the JDK 6/7 timeframe, I rewrote parts of it, and because there were already two versions
of javah in JDK, and I was about to add a third, I got rid of the other two, and eliminated
the undocumented  -Xold option.
> So, you can probably figure out the rest of the story.
> The change in behavior that you came across was introduced round about JDK 5, but it
was masked by Ant using the -Xold switch to get at the old code.   When I did my rewrite,
I removed -Xold, thus forcing the Ant task to move to a later version of javah, thus getting
the additional header files.
> For my part, when I did my rewrite back in JDK 6/7, I retained fidelity with the standard
command line version of javah in use at the time, so I wrote it so that it continued to generate
headers for nested classes.


On Mar 13, 2012, at 1:28 PM, Greg Brown wrote:

>> The implementation of Ant's javah task doesn't even check which version
>> of Java you are using.  If this is a change, it is within the JDK, not
>> Ant.
> That was my first thought as well:
>> If you run Ant -verbose it should give you the literal command line it
>> passes to javah.  I wouldn't expect it to contain your nested classes.
> I'll try that and let you know what I find out. 
> Thanks!
> Greg
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message