

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
        <html lang="en">
    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
    <head>
      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Apache Ant - Binary Distributions</title>
        <link type="text/css" href="./page.css" rel="stylesheet">
        </head>

    <body>
      <p class="navpath">
        <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
      </p>

      <div class="logobar">
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td>
            <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td>
            <td align="right">
              <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
                <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
                  <tr>
                    <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td>
                  </tr>
                  <tr>
                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
                    <td nowrap="nowrap" class="searchcaption">
                      <input name="q" type="hidden">
                      <input size="15" id="query" type="text">
                      <img height="1" width="5" alt="" src="./images/spacer.gif">
                      <input name="Search" value="Search" type="submit">
                      <br>
                      the Apache Ant site
                    </td>
                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
                  </tr>
                  <tr>
                    <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td>
                    <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td>
                    <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td>
                  </tr>
                </table>
              </form>
            </td>
          </tr>
        </table>
      </div>

                  <div class="tab">
              <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
                <tr>
                                  <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom">
                      <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
                        <tr>
                        <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td>
                        </tr>
                      </table>
                    </td>
                                    <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom">
                      <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
                        <tr>
                          <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td>
                        </tr>
                      </table>
                    </td>
                            </tr>
              </table>
            </div>

      <div class="bluebar"></div>
                    
  <div class="menucontainer">
    <div class="menu">
      <ul>
              <li class="menuheader">Apache Ant
          <ul>
                            <li>
                                    <a href="./index.html">Welcome</a>
                                </li>
                            <li>
                                    <a href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a>
                                </li>
                            <li>
                                    <a href="./antnews.html">News</a>
                                </li>
                      </ul>
        </li>
              <li class="menuheader">Documentation
          <ul>
                            <li>
                                    <a href="./manual/index.html">Manual</a>
                                </li>
                            <li>
                                    <a href="./projects.html">Related Projects</a>
                                </li>
                            <li>
                                    <a href="./external.html">External Tools and Tasks</a>
                                </li>
                            <li>
                                    <a href="./resources.html">Resources</a>
                                </li>
                            <li>
                                    <a href="./faq.html">Frequently Asked Questions</a>
                                </li>
                            <li>
                                    <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a>
                                </li>
                            <li>
                                    <a href="./problems.html">Having Problems?</a>
                                </li>
                      </ul>
        </li>
              <li class="menuheader">Download
          <ul>
                            <li>
                              <span class="sel">Binary Distributions</span>
                              </li>
                            <li>
                                    <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
                                </li>
                            <li>
                                    <a href="http://ant.apache.org/manualdownload.cgi">Ant Manual</a>
                                </li>
                      </ul>
        </li>
              <li class="menuheader">Contributing
          <ul>
                            <li>
                                    <a href="./mail.html">Mailing Lists</a>
                                </li>
                            <li>
                                    <a href="./svn.html">Subversion Repositories</a>
                                </li>
                            <li>
                                    <a href="./nightlies.html">Nightly+Continuous Builds</a>
                                </li>
                            <li>
                                    <a href="./bugs.html">Bug Database</a>
                                </li>
                            <li>
                                    <a href="http://www.apache.org/security/">Security</a>
                                </li>
                      </ul>
        </li>
              <li class="menuheader">Sponsorship
          <ul>
                            <li>
                                    <a href="http://www.apache.org/foundation/thanks.html">Thanks</a>
                                </li>
                            <li>
                                    <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
                                </li>
                      </ul>
        </li>
              <li class="menuheader">Project Management
          <ul>
                            <li>
                                    <a href="./contributors.html">Contributors</a>
                                </li>
                            <li>
                                    <a href="./mission.html">Apache Ant Mission</a>
                                </li>
                            <li>
                                    <a href="./bylaws.html">Project Bylaws</a>
                                </li>
                            <li>
                                    <a href="./legal.html">Legal</a>
                                </li>
                      </ul>
        </li>
            </ul>
    </div>
    <center>
    <a href="http://www.apache.org/events/current-event.html"><img border="0" title="ApacheCon" alt="ApacheCon - logo" src="http://www.apache.org/events/current-event-125x125.png" style="width: 125px;height: 125px;"></a>
    </center>
    <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif">
    <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif">
  </div>
      <div class="lightbluebar">&nbsp;</div>
  <div class="main">
  <div class="content">
    <h1 class="title">Binary Distributions</h1>
            <h3 class="section">
      <a name="Apache Ant&amp;#x2122;"></a>
      Apache Ant&#x2122;
    </h3>
                        <p>Apache Ant is a Java library and command-line tool that help
  building software.</p>
                        <h3 class="section">
      <a name="Downloading Apache Ant"></a>
      Downloading Apache Ant
    </h3>
                        <p>Use the links below to download a binary distribution of Ant from
one of our mirrors.  It is good practice to
<a href="[location]#Verify Releases">verify the integrity</a>
of the distribution files, especially if you are using one of our
mirror sites.  In order to do this you must use the signatures from
our <a href="http://www.apache.org/dist/ant/">main distribution
directory</a>.</p>
                                <p>Ant is distributed as <code>zip</code>, <code>tar.gz</code> and
<code>tar.bz2</code> archives - the contents are the same.  Please
note that the <code>tar.*</code> archives contain file names longer
than 100 characters and have been created using GNU tar extensions.
Thus they must be untarred with a GNU compatible version of
<code>tar</code>.</p>
                                <p>In addition the <a href="http://www.jpackage.org">JPackage
project</a> provides RPMs at their own distribution site.</p>
                                <p>If you do not see the file you need in the links below, please see
the <a href="http://www.apache.org/dist/ant/">master distribution
directory</a> or, preferably, its <a href="[preferred]/ant/">mirror</a>.</p>
                        <h3 class="section">
      <a name="Mirror"></a>
      Mirror
    </h3>
                        <p>You are currently using <b>[preferred]</b>.  If you encounter a
problem with this mirror, please select another mirror.  If all
mirrors are failing, there are <i>backup</i> mirrors (at the end of
the mirrors list) that should be available.</p>
                                <form action="[location]" method="get" id="SelectMirror">
Other mirrors: <select name="Preferred">
[if-any http]
  [for http]<option value="[http]">[http]</option>[end]
[end]
[if-any ftp]
  [for ftp]<option value="[ftp]">[ftp]</option>[end]
[end]
[if-any backup]
  [for backup]<option value="[backup]">[backup] (backup)</option>[end]
[end]
</select>
<input type="submit" value="Change" />
</form>
                        <h3 class="section">
      <a name="Current Release of Ant"></a>
      Current Release of Ant
    </h3>
                        <p>Currently, Apache Ant 1.8.1 is the best available version, see the
<a href="[preferred]/ant/README.html">release notes</a>.</p>
                                <div class="warning">
<div class="label">Note</div>
<div class="content">Ant 1.8.1 was released on 7-May-2010 and
may not be available on all mirrors for a few days.</div>
</div>
                                <br />
                                <div class="warning">
<div class="label">Tar files may require gnu tar to extract</div>
<div class="content">Tar files in the distribution contain long file names, and may
 require gnu tar to do the extraction.</div>
</div>
                                <ul>
<li><code>.zip</code> archive:
<a href="[preferred]/ant/binaries/apache-ant-1.8.1-bin.zip">apache-ant-1.8.1-bin.zip</a>
[<a href="http://www.apache.org/dist/ant/binaries/apache-ant-1.8.1-bin.zip.asc">PGP</a>]
[<a href="http://www.apache.org/dist/ant/binaries/apache-ant-1.8.1-bin.zip.sha1">SHA1</a>]
[<a href="http://www.apache.org/dist/ant/binaries/apache-ant-1.8.1-bin.zip.sha512">SHA512</a>]
[<a href="http://www.apache.org/dist/ant/binaries/apache-ant-1.8.1-bin.zip.md5">MD5</a>]</li>

<li><code>.tar.gz</code> archive:
<a href="[preferred]/ant/binaries/apache-ant-1.8.1-bin.tar.gz">apache-ant-1.8.1-bin.tar.gz</a>
[<a href="http://www.apache.org/dist/ant/binaries/apache-ant-1.8.1-bin.tar.gz.asc">PGP</a>]
[<a href="http://www.apache.org/dist/ant/binaries/apache-ant-1.8.1-bin.tar.gz.sha1">SHA1</a>]
[<a href="http://www.apache.org/dist/ant/binaries/apache-ant-1.8.1-bin.tar.gz.sha512">SHA512</a>]
[<a href="http://www.apache.org/dist/ant/binaries/apache-ant-1.8.1-bin.tar.gz.md5">MD5</a>]</li>

<li><code>.tar.bz2</code> archive:
<a href="[preferred]/ant/binaries/apache-ant-1.8.1-bin.tar.bz2">apache-ant-1.8.1-bin.tar.bz2</a>
[<a href="http://www.apache.org/dist/ant/binaries/apache-ant-1.8.1-bin.tar.bz2.asc">PGP</a>]
[<a href="http://www.apache.org/dist/ant/binaries/apache-ant-1.8.1-bin.tar.bz2.sha1">SHA1</a>]
[<a href="http://www.apache.org/dist/ant/binaries/apache-ant-1.8.1-bin.tar.bz2.sha512">SHA512</a>]
[<a href="http://www.apache.org/dist/ant/binaries/apache-ant-1.8.1-bin.tar.bz2.md5">MD5</a>]</li>
</ul>
                        <h3 class="section">
      <a name="Old Ant Releases"></a>
      Old Ant Releases
    </h3>
                        <p>Older releases of Ant can be found <a href="http://archive.apache.org/dist/ant/binaries/">here</a>.  We highly
recommend to not use those releases but upgrade to Ant's <a href="[location]#Current Release of Ant">latest</a> release.</p>
                        <h3 class="section">
      <a name="Verify Releases"></a>
      Verify Releases
    </h3>
                        <p>It is essential that you verify the integrity of the downloaded
files using the PGP signature or the SHA1, SHA512 or MD5 checksums.  The
checksums are not as strong indicators as the PGP signature.</p>
                                <p>The PGP signatures can be verified using PGP or GPG.  First
download the <a href="http://www.apache.org/dist/ant/KEYS">KEYS</a>
as well as the <code>asc</code> signature file for the particular
distribution.  Make sure you get these files from the <a href="http://www.apache.org/dist/ant/">main distribution
directory</a>, rather than from a mirror. Then verify the signatures
using</p>
                                <p><code>
% pgpk -a KEYS<br />
% pgpv apache-ant-1.8.1-bin.tar.gz.asc<br />
</code>
<em>or</em><br />
<code>
% pgp -ka KEYS<br />
% pgp apache-ant-1.8.1-bin.tar.gz.asc<br />
</code>
<em>or</em><br />
<code>
% gpg --import KEYS<br />
% gpg --verify apache-ant-1.8.1-bin.tar.gz.asc
</code></p>
                                <p>A command line version of <a href="http://www.gnupg.org/download/">GnuPG</a> 
is also available for Windows users.  Follow the 
<a href="http://www.gnupg.org/(en)/documentation/faqs.html#q4.19">instructions</a> 
to verify the package.</p>
                                <p>Alternatively, you can verify the checksums on the files.  Unix
programs called <code>md5</code>/<code>sha1</code>/<code>sha512</code> or
<code>md5sum</code>/<code>sha1sum</code>/<code>sha512sum</code> are included in many unix
distributions.  <code>*sum</code> is also available as part of <a href="http://www.gnu.org/software/textutils/textutils.html">GNU
Textutils</a>.  Windows users can get binary md5 programs from <a href="http://www.fourmilab.ch/md5/">here</a>, <a href="http://www.pc-tools.net/win32/freeware/console/">here</a>.  <a href="http://www.slavasoft.com/fsum/">fsum</a> supports MD5 and
SHA1.</p>
                                <p>We highly recommend to verify the PGP signature, though.</p>
                
    </div>
  </div>

        <p class="copyright">
      Apache Ant, Apache Ivy, Ant, Ivy, Apache, the Apache feather logo, and the Apache Ant project logos are trademarks of The Apache Software Foundation.
        <script type="text/javascript" language="JavaScript"><!--
                document.write(" - "+"Last Published: " + document.lastModified);
              //  -->
        </script>
      </p>
    </body>
  </html>















