mbenson 2005/02/10 15:10:17 Modified: src/main/org/apache/tools/ant/taskdefs/optional/javah SunJavah.java Log: Ensure the forked VM can find the Sun Javah implementation. Revision Changes Path 1.2 +12 -6 ant/src/main/org/apache/tools/ant/taskdefs/optional/javah/SunJavah.java Index: SunJavah.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/javah/SunJavah.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- SunJavah.java 4 Feb 2005 08:08:07 -0000 1.1 +++ SunJavah.java 10 Feb 2005 23:10:17 -0000 1.2 @@ -16,7 +16,10 @@ */ package org.apache.tools.ant.taskdefs.optional.javah; +import java.io.File; + import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.launch.Locator; import org.apache.tools.ant.taskdefs.ExecuteJava; import org.apache.tools.ant.taskdefs.optional.Javah; import org.apache.tools.ant.types.Commandline; @@ -40,22 +43,25 @@ public boolean compile(Javah javah) throws BuildException { Commandline cmd = setupJavahCommand(javah); ExecuteJava ej = new ExecuteJava(); - + Class c = null; try { try { // first search for the "old" javah class in 1.4.2 tools.jar - Class.forName("com.sun.tools.javah.oldjavah.Main"); - cmd.setExecutable("com.sun.tools.javah.oldjavah.Main"); + c = Class.forName("com.sun.tools.javah.oldjavah.Main"); } catch (ClassNotFoundException cnfe) { // assume older than 1.4.2 tools.jar - Class.forName("com.sun.tools.javah.Main"); - cmd.setExecutable("com.sun.tools.javah.Main"); + c = Class.forName("com.sun.tools.javah.Main"); } } catch (ClassNotFoundException ex) { throw new BuildException("Can't load javah", ex, javah.getLocation()); } + cmd.setExecutable(c.getName()); ej.setJavaCommand(cmd); + File f = Locator.getClassSource(c); + if (f != null) { + ej.setClasspath(new Path(javah.getProject(), f.getPath())); + } return ej.fork(javah) == 0; } @@ -117,4 +123,4 @@ return cmd; } -} \ No newline at end of file +}
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]