Package org.apache.tools.ant

# Class Main

java.lang.Object
org.apache.tools.ant.Main

All Implemented Interfaces:
  `AntMain`

public class Main extends Object implements AntMain
Command line entry point into Ant. This class is entered via the canonical `public static void main` entry point and reads the command line arguments. It then assembles and executes an Ant project.

If you integrating Ant into some other tool, this is not the class to use as an entry point. Please see the source code of this class to see how it manipulates the Ant project classes.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `DEFAULT_BUILD_FILENAME`
  The default build file name.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  ``
  `Main()`
  Constructor used when creating Main for later arg processing and startup
  `protected`
  `Main(String[] args)`
  Deprecated.
  since 1.6.x

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `addBuildListeners(Project project)`
  Adds the listeners specified in the command line arguments, along with the default listener, to the specified project.
  `protected void`
  `exit(int exitCode)`
  This operation is expected to call `System.exit(int)`, which is what the base version does.
  `static String`
  `getAntVersion()`
  Returns the Ant version information, if available.
  `static String`
  `getShortAntVersion()`
  Returns the short Ant version information, if available.
  `static void`
  `main(String[] args)`
  Command line entry point.
  `static void`
  `start(String[] args, Properties additionalUserProperties, ClassLoader coreLoader)`
  Creates a new instance of this class using the arguments specified, gives it any extra user properties which have been specified, and then runs the build using the classloader provided.
  `void`
  `startAnt(String[] args, Properties additionalUserProperties, ClassLoader coreLoader)`
  Start Ant

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### DEFAULT_BUILD_FILENAME

    public static final String DEFAULT_BUILD_FILENAME
    The default build file name. "build.xml"
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### Main

    public Main()
    Constructor used when creating Main for later arg processing and startup

  - ### Main

    @Deprecated protected Main(String[] args) throws BuildException
    Deprecated.
    since 1.6.x
    Sole constructor, which parses and deals with command line arguments.
    Parameters:
      `args` - Command line arguments. Must not be `null`.
    Throws:
      `BuildException` - if the specified build file doesn't exist or is a directory.

- ## Method Details

  - ### start

    public static void start(String[] args, Properties additionalUserProperties, ClassLoader coreLoader)
    Creates a new instance of this class using the arguments specified, gives it any extra user properties which have been specified, and then runs the build using the classloader provided.
    Parameters:
      `args` - Command line arguments. Must not be `null`.
      `additionalUserProperties` - Any extra properties to use in this build. May be `null`, which is the equivalent to passing in an empty set of properties.
      `coreLoader` - Classloader used for core classes. May be `null` in which case the system classloader is used.

  - ### startAnt

    public void startAnt(String[] args, Properties additionalUserProperties, ClassLoader coreLoader)
    Start Ant
    Specified by:
      `startAnt` in interface `AntMain`
    Parameters:
      `args` - command line args
      `additionalUserProperties` - properties to set beyond those that may be specified on the args list
      `coreLoader` - - not used
    Since:
      Ant 1.6

  - ### exit

    protected void exit(int exitCode)
    This operation is expected to call `System.exit(int)`, which is what the base version does. However, it is possible to do something else.
    Parameters:
      `exitCode` - code to exit with

  - ### main

    public static void main(String[] args)
    Command line entry point. This method kicks off the building of a project object and executes a build using either a given target or the default target.
    Parameters:
      `args` - Command line arguments. Must not be `null`.

  - ### addBuildListeners

    protected void addBuildListeners(Project project)
    Adds the listeners specified in the command line arguments, along with the default listener, to the specified project.
    Parameters:
      `project` - The project to add listeners to. Must not be `null`.

  - ### getAntVersion

    public static String getAntVersion() throws BuildException
    Returns the Ant version information, if available. Once the information has been loaded once, it's cached and returned from the cache on future calls.
    Returns:
      the Ant version information as a String (always non-`null`)
    Throws:
      `BuildException` - if the version information is unavailable

  - ### getShortAntVersion

    public static String getShortAntVersion() throws BuildException
    Returns the short Ant version information, if available. Once the information has been loaded once, it's cached and returned from the cache on future calls.
    Returns:
      the short Ant version information as a String (always non-`null`)
    Throws:
      `BuildException` - BuildException if the version information is unavailable
    Since:
      Ant 1.9.3