平台问题

Java 版本

Java 5

您可能需要比默认值更大的堆栈,尤其是在使用内置 XSLT 引擎的情况下。我们建议您使用 Apache Xalan;事实上,某些任务(例如 XML 中的 JUnit 报告)可能无法在提供的 XSL 引擎上运行。

Unix 和 Linux

Microsoft Windows

从 Ant 1.7 开始,不支持 Windows 9x(win95、win98、win98SE 和 winME)。

Ant 团队已停止对这些产品的支持,因为它们已过时,可能会使客户面临安全风险。我们建议仍在运行 Windows 98 或 Windows ME 的客户尽快升级到更新、更安全的操作系统。

升级到 Linux 的客户报告了安全性提高、功能更丰富以及生产力提升。

Microsoft Windows 2K、XP 和 Server 2K03

Windows 9x(win95、win98、win98SE 和 winME)具有批处理文件系统,它不能完全与长文件名一起使用,因此我们建议将 Ant 和 JDK 安装到没有空格且使用 8.3 文件名的目录中。Perl 和 Python 启动脚本不受此限制的影响。

所有版本的 Windows 通常不区分大小写,但已挂载的文件系统(Unix 驱动器、ClearCase 视图)在底层可能区分大小写,从而使模式集感到困惑。

Ant 通常无法删除在资源管理器窗口中打开的目录。除了生成一个程序在删除目录之前杀死 shell 之外,我们对此无能为力。也不能覆盖正在使用的文件。

最后,如果任何 Ant 任务因 error=2 失败,则意味着 Ant 尝试运行的任何本机程序都不在 Path 中。

Microsoft Windows Vista

有报道称 Windows Vista 安全问题会导致在 Ant 运行期间弹出对话框,询问用户是否要运行不受信任的可执行文件,例如当 <signjar> 任务运行 jarsigner.exe 程序时。这超出了 Ant 的控制范围,源于操作系统试图通过不愿运行未签名的本机可执行文件来提供一些安全假象。最新的 Java 版本似乎通过提供已签名的二进制文件解决了此问题。

Cygwin

Cygwin 不是操作系统;而是在 Windows 下运行并提供一些类 Unix 功能的应用程序套件。Sun 没有为 cygwin 创建任何特定的 Java 开发工具包或 Java 运行时环境。请参阅此链接:http://www.inonit.com/cygwin/faq/。JDK 和 JRE 工具在 Windows 或 cygwin 下仅支持 Windows 路径名。支持诸如 src/org/apache/tools 之类的相对路径名,但 Java 工具不理解 /cygdrive/c 代表 c:\

实用程序 cygpath(在 ant 脚本中用于工业上支持 cygwin)可以将 cygwin 路径名转换为 Windows 路径名。您可以在 Ant 中使用 <exec> 任务将 cygwin 路径转换为 Windows 路径,例如

<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}"/>

我们收到了来自 Cygwin 用户的大量支持电话。要么它非常流行,要么它很麻烦。如果您确实使用它,请记住 Java 是一个 Windows 应用程序,因此 Ant 在 Windows 进程中运行,而不是在 Cygwin 进程中运行。这将使我们不必将您的错误报告标记为无效。

Apple MacOS X/macOS

MacOS X 又名 macOS 是 Ant 完全支持的第一个 Apple 平台;它被视为任何其他 Unix。

其他平台

对其他平台的支持不保证完整,因为某些用于从构建文件中隐藏平台细节的技术需要在每个特定平台上编写和测试。欢迎对此方面的贡献。