The run method below returns a string. Try printing out its value or logging it as you like.
--Dan -----Original Message----- From: Olivier SCHMITT [mailto:[EMAIL PROTECTED]] Sent: Tuesday, September 17, 2002 8:47 AM To: Ant Users List Subject: RE: Running ant from Java Hi, do yo know how to get the java compiler output error from Java ? I've tried your code but it doesn't log java compiler output error. thanks. >Here is an admittedly ugly class that I whipped together once. You will >want to clean it up and customize it for your purposes, but it should get >you started. > >--Dan > >import org.apache.tools.ant.Project; >import org.apache.tools.ant.Target; >import org.apache.tools.ant.BuildLogger; >import org.apache.tools.ant.DefaultLogger; >import org.apache.tools.ant.ProjectHelper; >import org.apache.tools.ant.taskdefs.Echo; > >import java.io.File; >import java.io.PrintStream; >import java.io.ByteArrayOutputStream; >import java.util.Vector; >import java.util.HashMap; >import java.util.Iterator; > >public class AntLauncher >{ > > public static String run( HashMap args ) > { > final Project project = new Project(); > ByteArrayOutputStream out = null; > > try > { > out = new ByteArrayOutputStream(); > project.addBuildListener(AntLauncher.createLogger( out )); > project.init(); > File buildFile = new File( (String)args.remove("ant.file") ); > ProjectHelper.configureProject(project, buildFile); > String path = buildFile.getAbsolutePath(); > > // Set Build File > project.setUserProperty("ant.file", path); > > // Set runtime properties > Iterator iterator = args.keySet().iterator(); > while ( iterator.hasNext() ) > { > String key = (String)iterator.next(); > String value = (String)args.get( key ); > project.setUserProperty( key, value ); > } > > Vector targets = new Vector(5); > Target init = new Target(); > init.setName("echo"); > init.setProject(project); > String myTarget = project.getDefaultTarget(); > targets.addElement( myTarget ); > Echo echo = new Echo(); > echo.setMessage("Trying to Run ant using java."); > init.addTask(echo); > project.addTarget(init); > project.executeTargets(targets); > } > catch (RuntimeException exc ) > { > exc.printStackTrace(); > } > > return out.toString(); > } > > /** > * Creates the default build logger for sending build events to the > ant log. > */ > private static BuildLogger createLogger( ByteArrayOutputStream out ) > { > BuildLogger logger = null; > logger = new DefaultLogger(); > > logger.setMessageOutputLevel(Project.MSG_INFO); > logger.setOutputPrintStream(new PrintStream( out )); > logger.setErrorPrintStream(new PrintStream( out )); > logger.setEmacsMode(false); > > return logger; > } >} > > > > >-----Original Message----- >From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] >Sent: Tuesday, September 17, 2002 6:53 AM >To: [EMAIL PROTECTED] >Subject: Running ant from Java > > >Hi > >Has anyone written a class that has a method that can run Ant from a Java >class. The methods in org.apache.tools.ant.Main all calls "System.exit()" >and hence cannot be used for this purpose. > >/Göran > >-- >To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> >For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > > >-- >To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> >For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>