Platform Issues

Unix

Microsoft Windows

Windows 9x (win95, win98, win98SE and winME) has a batch file system which does not work fully with long file names, so we recommend that ant and the JDK are installed into directories without spaces, and with 8.3 filenames. The Perl and Python launcher scripts do not suffer from this limitation.

All versions of windows are usually case insensitive, although mounted file systems (Unix drives, Clearcase views) can be case sensitive underneath, confusing patternsets.

Ant can often not delete a directory which is open in an Explorer window. There is nothing we can do about this short of spawning a program to kill the shell before deleting directories.

Cygwin

Cygwin is not really an operating system; rather it is an application suite running under Windows and providing some UNIX like functionality. AFAIK, Sun did not create any specific Java Development Kit or Java Runtime Environment for cygwin. See this link : http://www.inonit.com/cygwin/faq/ . Only Windows path names are supported by JDK and JRE tools under Windows or cygwin. Relative path names such as "src/org/apache/tools" are supported, but Java tools do not understand /cygdrive/c to mean c:\.

The utility cygpath (used industrially in the ant script to support cygwin) can convert cygwin path names to Windows. You can use the task in ant to convert cygwin paths to Windows path, for instance like that :

<property name="some.cygwin.path" value="/cygdrive/h/somepath"/>
<exec executable="cygpath" outputproperty="windows.pathname">
   <arg value="--windows"/>
   <arg value="${some.cygwin.path}"/>
</exec>
<echo message="${windows.pathname}"/>

Apple MacOS X

MacOS X is the first of the Apple platforms that Ant supports completely; it is treated like any other Unix.

Novell Netware

To give the same level of sophisticated control as Ant's startup scripts on other platforms, it was decided to make the main ant startup on NetWare be via a Perl Script, "runant.pl". This is found in the bin directory (for instance - bootstrap\bin or dist\bin).

One important item of note is that you need to set up the following to run ant:

It is suggested that you create up an ant.ncf that sets up these parameters, and calls perl ANT_HOME/dist/bin/runant.pl

The following is an example of such an NCF file(assuming ant is installed in 'sys:/apache-ant/'):

   envset CLASSPATH=SYS:/apache-ant/bootstrap/lib/ant.jar
   envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/lib/xercesImpl.jar
   envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/lib/xml-apis.jar
   envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/lib/optional/junit.jar
   envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/bootstrap/lib/optional.jar

   setenv ANT_OPTS=-envCWD=sys:/apache-ant
   envset ANT_OPTS=-envCWD=sys:/apache-ant
   setenv ANT_HOME=sys:/apache-ant/dist/lib
   envset ANT_HOME=sys:/apache-ant/dist/lib

   perl sys:/apache-ant/dist/bin/runant.pl

Ant works on JVM version 1.3 or higher. You may have some luck running it on JVM 1.2, but serious problems have been found running Ant on JVM 1.1.7B. These problems are caused by JVM bugs that will not be fixed.

JVM 1.3 is supported on Novell NetWare versions 5.1 and higher.

Other platforms

Support for other platforms is not guaranteed to be complete, as certain techniques to hide platform details from build files need to be written and tested on every particular platform. Contributions in this area are welcome.

Copyright © 2002-2004 The Apache Software Foundation. All rights Reserved.