Download Ant For Mac Os X

How many times has this happened to you? You've written a littleJava utility, or maybe even a more complex application, and you want tocreate Mac OS X application bundle for easy distribution.

You'd like to be able to do it automatically from your build process,but you're forced to go run the Apple Jar Bundler and tweak all thesettings manually every time you build.

Download antispyware, spy-protect, antivirus and privacy shield software for your Apple macOS, these anti-virus software has the ability to detect viruses and malware written specifically for a macOS, although the existence of these viruses are rare, it still exist and with the ever growing popularity of Apple macOS, the threat is growing proportionately. Apache Ant Mac Os X Download 10.11; Apache Ant Macos; Download and extract Apache Ant. The latest version of Apache Ant is 1.8 on Mac Informer. It is a perfect match for the Developer Tools category. The app is developed by Server Logistics. Download and extract the Apache Ant bin.tar.gz file to wherever you prefer with the following command.

Well no more! JarBundler is a feature-rich Ant task which willcreate a Mac OS X application bundle from a list of Jar files and amain class name. You can add an Icon resource, set various Mac OS Xnative look-and-feel bells and whistles, and maintain your applicationbundles as part of your normal build and release cycle. It is freesoftware licensed under the GNU General Public License.

This release is based on the earlier work ofSeth Morabito.

This project was taken over by Tobias Bley and moved to GitHub August 2015.

What's New, April 2014

  • Issue a warning when using deprecated 'shortinfostring' attribute
  • Issue a warning when using deprecated 'aboutmenuname' attribute
  • Added the optional 'copyright' string attribute to JarBundler task
  • Added the optional 'allowMixedLocalizations' boolean attribute to JarBundler task.
    Many thanks to Tobias Fischer for these additions and updates.

Download

Source and binary, all platforms (ZIP):jarbundler.zip
Source and binary, all platforms (TAR):jarbundler.tar.gz

Installation

Move the file jarbundler-2.3.1.jar into your local ANT lib directory. Remove any older versions at this time.

Using in the Build file

To use the Jar Bundler Ant Task, create a task definition in yourANT build.xml file like this:

Now, from a target, you can add the 'jarbundler' task.

Task Attributes, required

AttributeDescription
dirThe directory in which your application bundle will be created.
nameThe name of your application bundle (minus the '.app' extension).
mainclassThe name of the main class to run when the application bundle is launched.
jarA single jar file to be used in your application.
Not Required if there are nested <jarfileset> or <jarfilelist> nested tasks.
Can be used with nested <jarfileset> and/or <jarfilelist> tasks i.e. all jar files will be added to the class path.

Task Attributes, optional

AttributeDescription
allowMixedLocalizationsIf true, the bundle supports the retrieval of localized strings from frameworks. This should be set to true if your app supports different languages.
The corresponding bundle variable is CFBundleAllowMixedLocalizations
argumentsExtra command-line arguments for the Java application.
The corresponding bundle variable is Arguments
buildApplication build number. This string is used in the default 'About...' box along with the 'version' number. This default About Box format is 'version (build)' i.e. '4.3.1 (231)'. Also see version and infostring attributes.
The corresponding bundle variable is CFBundleVersion
bundleidUnique identifier string for the bundle. This string should be in the form of a java package name, for example com.apple.myapp.
The corresponding bundle variable is CFBundleIdentifier
copyrightA string with the copyright notice for the bundle; for example '©2014, My Company'
The corresponding bundle variable is NSHumanReadableCopyright
developmentregionThe development region of the bundle.
The corresponding bundle variable is CFBundleDevelopmentRegion
extraclasspathA list of files or patternsets (space or comma seperated) to add to the bundle's classpath. The files referenced by this property will not be copied into the bundle, so the resulting .app may only work on systems that have these external resources available.
helpbookfolderSpecify the directory name of the Help Book in the 'resources' directory. When this name must match the directory name when using the <resourcefileset> task to copy the Help Book HTML files into the bundle.
The corresponding bundle variable is CFBundleHelpBookFolder
helpbooknameSpecify the name of the Help Book. This is string is also used as the META tag to designate the initial HTML file to be loaded into the Help Viewer application.
<meta name='AppleTitle'/>
NB: The Apple Help Book system does not open the file index.html by default. Although it is a good practice to use this filename with the embedded META tag shown above.
The corresponding bundle variable is CFBundleHelpBookName
iconFile reference to a Mac OS X icon file. This file is created with the Mac OS application located at '/Developer/Applications/Utilites/Icon Composer'
infostringA string for display in the Finder's Get Info panel. Also see version and build attributes.
The corresponding bundle variable is CFBundleGetInfoString
isAgentboolean
jvmarchsA space delimited string. Used to take advantage of 64-bit computing.
Example: jvmarchs='i386 x64_86 ppc'
lsArchitecturePriorityA space delimited string. Contains an array of strings identifying the supported code architectures and their preferred execution priority.
jvmversionThe version of the JVM required to run the application. Typically a string in the form '1.3', '1.3+', '1.4', '1.4+', etc.
The corresponding bundle variable is JVMVersion
ADC: Specifing the Java Version after installing J2SE 5.0
shortnameThe string used in the application menu.
This string is often shorter than the application's name. For example, 'Microsoft Word' displays 'Word'.. Apple recommends that this string be limited to 16 characters. JarBuilder enforces this limit silently by truncating shortname. If the shortname is not specified then the application's name will be used with no truncation.
showplistIf true, display the contents of the Info.plist file
signatureThe four-letter code identifying the bundle.
The corresponding bundle variable is CFBundleSignature
splashfile**Needs link to Apple Technical Document**
stubfileIf set, the location of a Mac OS X Java Application Stub file to use for this application bundle. See the section 'Specifying the Java Launching Stub File' below.
Required for Windows or Linux
Under MacOS, if the referenced file does not exist, then the file name will be used in the bundle to reference a copy of the JavaApplicationStub. This usage provides a way for each Java application to have a uniquely named executable file name. This is useful when using the UNIX 'top' command to distinguish applications.
suFeedURLUsed to check for new version of the applications.
verboseIf true, output more verbose information to Ant while the task is running.
versionVersion number displayed in Finder, this version number can be though of as the 'Marketing' version without distracting build information. The marketing version is a string that usually displays the major and minor version of the bundle. This string is usually of the form n.n.n where n is a number. Also see build and infostring attributes.
The corresponding bundle variable is CFBundleShortVersionString
vmoptionsCommand line options to pass the JVM at startup.
The corresponding bundle variable is VMOptions
workingdirectoryThe working directory for the Java application.
The corresponding bundle variable is WorkingDirectory
startOnMainThread
Download Ant For Mac Os X

Task Attributes, deprecated

AttributeDescription
aboutmenunameThe string to display in the 'About' menu of the running application. (Deprecated under JVM 1.4.1)
antialiasedgraphicsIf set to true, use anti-aliasing when rendering graphics.
Use <javaproperty name='apple.awt.antialiasing' .../>
antialiasedtextIf set to true, use anti-aliasing when rendering text.
Use <javaproperty name='apple.awt.textantialiasing' .../>
chmodThe full path to the BSD 'chmod' command.
execsA list of files or patternsets (space or comma seperated) to place into the 'Resources/MacOS' directory and set executable.
Usage Warning: Filenames and directory paths can sometimes contain spaces and commas. If these characters are present the build will fail mysteriously when using this attribute.
Use <execfileset/> or <execfilelist/> nested tasks instead.
growboxShow the Aqua resize (grow) box.
Use <javaproperty name='apple.awt.showGrowBox' .../>
growboxintrudesResizable window's growbox (resize control) intrudes into AWT content. If turned off, the bottom of the window is pushed down 15 pixels. (Deprecated under JVM 1.4.1)
jars A list of jar files or patternsets (space or comma seperated) to be used in your application.
Usage Warning: Filenames and directory paths can sometimes contain spaces and commas. If these characters are present the build will fail mysteriously when using this attribute.
Use <jarfileset> and/or <jarfilelist> nested tasks instead.
typeThe Mac OS type of the bundle.
This attribute is redundant with the implied behavior this ANT task i.e. CFBundlePackageType should always be set to APPL for applications.
shortinfostringUse infostring attribute instead.
smalltabsIf set to true, tab controls in Swing applications more closely resemble the Metal look and feel. If set to false, the tabs assume a larger size more similar to the default Aqua controls. (Deprecated under JVM 1.4.1)
liveresizeIf set to true, enable live-resizing of windows. (Deprecated under JVM 1.4.1)
screenmenuIf set to true, puts Swing menus in the Mac OS X menu bar if using the Aqua look and feel.
Set the apple.laf.useScreenMenuBar property instead: <javaproperty name='apple.laf.useScreenMenuBar' value='true'/>

Nested DataType Task

<jarfileset>

The nested jarfileset element specifies a FileSet. Allfiles included in this fileset will be included in the applicationbundle and added to the app bundle classpath. Only required if thejars attribute is not set.

<jarfilelist>

The nested jarfilelist element specifies a FileList. Allfiles included in this filelist will be included in the applicationbundle and added to the app bundle classpath. Only required if thejars attribute is not set.

<javaproperty ...>

This ANT DataType element allows developers to specify java propertiesfor the info.plist. This DataType repalces many jarbundler tag attributes. However, ifa deprecated attribute is used it will take precedent over a javaproperty. This was doneto maintain backward compatibility with earlier versions of jarbundler.

This task takes name/value pairs:

Additional Java Properites can be found in the Apple Developer Connection document: Apple Java Properties for JDK 1.4+

<execfileset>

The nested execfileset element specifies a FileSet. Allfiles included in this fileset will be added to the applicationbundle's 'Contents/MacOS' directory and set executable. Optional.

<execfilelist>

The nested execfilelist element specifies a FileList. Allfiles included in this filelist will be added to the applicationbundle's 'Contents/MacOS' directory and set executable. Optional.

<resourcefileset>

The nested resourcefileset element specifies a FileSet. Allfiles included in this fileset will be added to the applicationbundle's 'Contents/Resources' directory. Optional.

<resourcefilelist>

The nested resourcefilelist element specifies a FileList. Allfiles included in this filelist will be added to the applicationbundle's 'Contents/Resources' directory. Optional.

<javafileset>

The nested javafileset element specifies a FileSet. Allfiles included in this fileset will be added to the applicationbundle's 'Contents/Resources/Java' directory. Optional.

<javafilelist>

The nested javafilelist element specifies a FileList. Allfiles included in this filelist will be added to the applicationbundle's 'Contents/Resources/Java' directory. Optional.

<extraclasspathfileset>

The nested extraclasspathfileset element specifiesa FileSet. All files included in this fileset will be added to theapplication bundle's classpath, but the files will not becopied into the bundle itself. This allows you to specify externalsystem classpath dependencies without bundling the resources. Resourcescan be files or directories. Optional.

<extraclasspathfilelist>

The nested extraclasspathfilelist element specifiesa FileList. All files included in this filelist will be added to theapplication bundle's classpath, but the files will not becopied into the bundle itself. This allows you to specify externalsystem classpath dependencies without bundling the resources. Resourcescan be files or directories. Optional.

Note on FileList and FileSet target locations

Note that in fact the files are installed in locations which have the same relation to either Contents/MacOS or Contents/Resources directories as the files in the FileSet or FileList have to the 'dir' attribute. Thus in the case:

the *.jnilib files will be installed in Contents/Resources/ppc

Examples

A minimal example might look like this

This will create a Mac OS X application bundle called 'MyApp.app' inthe directory 'release' using a JAR file which was created in the 'build' directory.

You can use FileSets or FileLists for more complex builds. For example:

Advanced JarBundler Tasks

History

Released: Dec 2010 (version 2.2.0)

  • Added the optional 'jvmarchs' space delimited string attribute to JarBundler task.
    Thanks to Tobias Bley and his team
  • Added the optional 'lsArchitecturePriority' space delimited string attribute to JarBundler task.
    Thanks to Tobias Bley and his team
  • Added the optional 'suFeedURL' string attribute to JarBundler task.
    Thanks to Tobias Bley and his team

Released: Oct 2008 (version 2.1.0)

  • Added the optional 'startOnMainThread' boolean attribute to JarBundler task.
    Thanks to Mitch Coopet for his patch and the many other feature requesters.

Released: Jan 2007 (version 2.0.0)

  • Added the optional 'splashfile' attribute to JarBundler task.
    Thanks to Angelo van der Sijpt for this addition.
  • When run under any Window OS, the file separator for included libraries is writtenwith a backslash, ', instead of a forward slash, '/'.
    Thanks to Anthony Goubard for this fix.
  • Version 2.0.0 isn't a major release, but the license as changed to the more flexible Apache Software License v2.0 (ASLv2). This allows the JarBundler ANT task to be bundled into other packages whose licensing does not conform with the GPL.
  • Removed the dependency on the Xerxes API when writing the info.plist file. We lost the indenting but can look into this later.
    Thanks to Christian Menz for providing this modification to the source code.
  • ANT commands and shell script for creating a Disk Image. (Mac OS X only)
    Thanks to Philip Weaver for providing these. See 'Creating a Disk Image'

June 19, 2006 (version 1.9)

  • Deprecated chmod attribute. Using the ANT task 'Chmod' internally.
  • Using the ANT task 'Delete' internally to delete any pre-existing '.app' file
  • Added the <service> nested task. This matches a task used in the JEditbranch of JarBundler.Thanks to Björn 'Vampire' Kautler for providing source code.
  • Add UTI specifier to document types. Thanks to Deerwood McCord Jr. for the implementation.

April 12, 2006 (version 1.8.1)

Fix bug when using localized Help Books, the menu application would appears as (null)

Corrected the encoding for the Info.plist XML file so that the copyright character,amongst others, are processed correctly. Thanks to Christian Roth for both pointing out the encoding problem and providing a one line solution!

Download Ant For Mac Os X Os

April 11, 2006 (version 1.8)

Added bundle attribute to documenttype task in order to specifydocuments which are in reality directory trees, yet treated as a single entity by the Finder.Thanks to Deerwood McCord Jr. for the implementation.

Added mimetypes attribute to documenttype task in order to specifyMultipurpose Internet Mail Extensions (MIME) types for the document.Thanks to Deerwood McCord Jr. for the implementation.

No longer required to delete the existing application bundle, i.e. .app directory, before invoking the jarbundler task. This is now done by the task itself.

The filename of the stubfile attribute will be used as the Java Application Stub filename within the bundle and for the value of the CFBundleExecutable key in the Info.plist. This usage provides a way for each Java application to have a uniquely named executable filename. This is useful when using the UNIX 'top' command to distinguish applications.Thanks to Deerwood McCord Jr. for the this idea.

Info.plist is built internally as a DOM tree instead of concatenating strings. This resulting DOM tree is serialized into the file using two space indentation and one tag per line.

Improved readablity of the verbose output. The contents of the Info.plist fileis controlled by the showPlist attribute.

Reorganize JarBundler documentation by splitting out advanced features

March 22, 2006 (version 1.7)

Added <documenttype> nested task so that file associations can be set upfor the application. Thanks to Dan Stowell a sample 'Info.plist' file containing document type entries.

Added <javafileset> and <javafilelist> nested tasks,which mirror <resourcefileset> and <resourcefilelist>, in order to add files to the Contents/Resources/Java directory

Added Apple Help Book support by...

  • Adding helpbookfolder attribute to the jarbundler task
  • Adding helpbookname attribute to the jarbundler task
  • Adding javafilelist nested task to assist in moving the Help Book JNI library to the correct location. (see above)

Thanks to Will Lowe for an example Help Book project with JNI code.

Split the 'Hello, World' example into a complex build which associatesdocument types and uses a Help Book, and a simple minimal build

Reorganize 'example' source directory to include Objective-C JNI code and usepackage structure for 'Hello, World' application rather than putting everything

March 2, 2006 (version 1.6)

Added <resourcefileset> and <resourcefilelist> nested elements,which mirror <execfileset> and <execfilelist>, and add files to the Contents/Resources directory.

Added build attribute to jarbundler task. See also versionand infostring for usage.

Added jar attribute to jarbundler task.

Added shortname attribute to jarbundler task. See also namefor usage.

JarBundler is now a SourceForge project!

Changed task package to net.sourceforge.jarbundler

February 2006 (version 1.5)

Changed the package from 'com.loomcom.ant.tasks.jarbundler' to 'com.informagen.ant.tasks.jarbundler' so that version 1.4 can remain installed without conflict

Added a nested DataType called 'javaproperty' so that new properties can be added by end users and deprecated properties can be removed. Former jarbundler tag atributes are still available but have been deprecated in favor of their 'javaproperty' equivalents.

Currently, a jarbundler tag attribute overrides a javaproperty tag. This was done to maintain backward compatibility with version 1.4

13 November 2004 (version 1.4):

Fixed a bug that was causing application arguments not to be set.

23 October 2004 (version 1.3):

Added 'extraclasspath' attribute, and 'extraclasspathfileset' and 'extraclasspathfilelist' nested elements, allowing users to optionally add external resources to the runtime classpath which will not be copied into the application bundle at build time. Removed some Java 1.4 requirements to allow building the sources under Java 1.3. Clarified the documentation.

26 July 2004 (version 1.2):

Added Ant property setters for 'bundleid' and 'developmentregion'. Bundleid has no default, and is optional. Developmentregion defaults to 'English', and is also optional. Fixed documentation on the website.

26 July 2004 (version 1.1):

Fixed several minor bugs, and improved BuildException messages. Jarfilesets and execfilesets now preserve directory structure when copying. Thanks to Trevor Harmon for pointing out bugs and enhancements.

25 July 2004 (version 1.0):

'execs' and 'jars' can now be set using embedded FileSets or FileLists. Added a 'verbose' flag, which currently sees limited use. Added 'chmod' attribute, which can be used to point to a non-standard 'chmod' command (not normally needed!) Increased error checking. Hopefully, the code is now robust enough for widespread production use!

28 Dec 2003 (version 0.5):

Added setter for 'execs' attribute. Added setter for 'workingdirectory' attribute. Fixed missing setter for 'arguments' attribute. Added alternate Java runtime parameter names for Mac OS X Java VM version 1.4.1. Included change submitted by Pierre-Luc Paour. Thanks also to Dante Briones and Graham Perks for pointing out bugs and enhancements.

12 October 2003 (Version 0.2:)

Added setter to properly support the 'vmoptions' parameter.(Change submitted by Alok Saldanha)

Contact

Please contact Will Gilbert if you have bugs to report, patches to the code,ideas for enhancements, or any other suggestions! I can be reachedat gilbert@informagen.com

Acknowledgments

Thanks to Dan Stowell for suggesting the 'documenttype' task and supplyingand example Info.plist file.

Thanks to Will Lowe for providing an example project which implemented 'AppleHelp Book' support for Java.

License

The Jar Bundler Ant Task is Copyright © 2002 - 2006, Seth J. Morabito. All rights reserved.

This program is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public Licenseas published by the Free Software Foundation; either version 2of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.

You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

Apache Ant™

Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications. Ant supplies a number of built-in tasks allowing to compile, assemble, test and run Java applications. Ant can also be used effectively to build non Java applications, for instance C or C++ applications. More generally, Ant can be used to pilot any type of process which can be described in terms of targets and tasks.

Ant is written in Java. Users of Ant can develop their own 'antlibs' containing Ant tasks and types, and are offered a large number of ready-made commercial or open-source 'antlibs'.

Ant is extremely flexible and does not impose coding conventions or directory layouts to the Java projects which adopt it as a build tool.

Software development projects looking for a solution combining build tool and dependency management can use Ant in combination with Apache Ivy.

The Apache Ant project is part of the Apache Software Foundation.

Apache Ant 1.9.16 and 1.10.11

July 13, 2021 - Apache Ant 1.9.16 and 1.10.11 Released

Apache Ant 1.9.16 and 1.10.11 are now available for download as source or binary from https://ant.apache.org/bindownload.cgi.

The Apache Ant team currently maintains two lines of development. The 1.9.x releases require Java5 at runtime and 1.10.x requires Java8 at runtime. Both lines are based off of Ant 1.9.7 and the 1.9.x releases are mostly bug fix releases while additional new features are developed for 1.10.x. We recommend using 1.10.x unless you are required to use versions of Java prior to Java8 during the build process.

Ant 1.10.11 contains a superset of 1.9.16 - with the exception of a few tasks and features that no longer work with Java8 anyway (like the apt task).

Both releases address potential denial of service vulnerabilities, see the security report for details.

Apache AntUnit 1.4.1

Jul 7, 2021 - Apache AntUnit 1.4.1 Released

Apache AntUnit 1.4.1 is now available for download as binary or source release.

This release fixes the antlib.xml descriptor so that AntUnit can now be used with a user-defined URI rather than having AntUnit's preferred URI hardcoded..

EasyAnt retired

Dec 13, 2016 - EasyAnt retired

The Ant PMC voted to archive the EasyAnt subproject and all its modules. This means that all its resources are removed or made read only and no further development will be done.
It also means that, if a community grows, the subproject could reactivated.

Apache Ivy 2.4.0

December 26, 2014 - Apache Ivy 2.4.0 Released

Apache Ivy 2.4.0 is now available for download as source or binary (with and without dependencies) from https://ant.apache.org/ivy/download.cgi.

Download Ant For Mac Os X 64-bit

Key features of the 2.4.0 release are

  • some new Ant tasks
  • improved OSGI support
  • a Bintray resolver
  • numerous bug fixes as documented in Jira and in the release notes

For more information see the Ivy home page.

Apache IvyDE 2.2.0

November 22, 2013 - Apache IvyDE 2.2.0 Released

The Apache IvyDE project is pleased to announce its 2.2.0 release.

The Apache IvyDE Eclipse plugin integrates Apache Ivy's dependency management into Eclipse. It lets you manage your dependencies declared in an ivy.xml in your Java Eclipse projects, or any other kind of project which needs dependency management. Apache IvyDE will contribute to the classpath of your Java project or you can make it retrieve your dependencies directly into your project. Last but not least Apache IvyDE offer editors of ivy.xml and ivysettings.xml files with completion. Get some preview here: https://ant.apache.org/ivy/ivyde/screenshots.html

Download Ant For Mac Os X Download

Major changes in this release

  • The API of IvyDE has been stabilized so that third party plugins can rely on it,
  • while still not complete, and still not advertised as stable in Ivy, support of OSGi has been added,
  • javadoc and source attachement can be edited now one by one,
  • improved stability of the resolve process,
  • improved logging for easier debugging.

Compatibility

  • This release is expected to work with every version of Ivy 2.1 or superior. The OSGi features require Ivy 2.3.0 or superior though.

This release is considered as stable. The beta of 2.2.0 has been out for a (too) long time.

A more detailed release notes can be read there: https://ant.apache.org/ivy/ivyde/history/latest-milestone/release-notes.html
Download the 2.2.0 release at: https://ant.apache.org/ivy/ivyde/download.cgi
Or use directly the Apache IvyDE's updatesite: https://downloads.apache.org/ant/ivyde/updatesite
Issues should be reported to: https://issues.apache.org/jira/browse/IVYDE
More information can be found on the Apache IvyDE website: https://ant.apache.org/ivy/ivyde/

Documentation

You can view the documentation for the current release online

Comprehensive documentation is included in the source and binary distributions.

Get Involved