从 Java 执行 Ant 命令会引发错误
尝试了以下步骤,但没有成功,非常感谢任何帮助:
- 我们在用 ant 构建的项目中有基于 java 的工具
- 手动,我们将通过导航到 java 项目来运行该工具,并运行工具命令,如下所示:
cd /Users/Project
ant
命令
手动上面的命令运行良好,但是当我们尝试从 Java 代码执行相同的命令时:
String[] cmd = { "ant run.loader -Dchangeuser=999-Dt=1-Dsl=0-Dpath=PathofInputFile/FileName.txt | tee log.txt", "-c", "//Users//ProjDir" };
Process p = Runtime.getRuntime().exec(cmd);
以上Java代码生成的错误如下:
java.io.IOException: Cannot run program "ant -v": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at java.lang.Runtime.exec(Runtime.java:485)
请注意,我们已经在 PATH 变量中配置了 Ant 路径。
任何帮助或建议将不胜感激。
ant
是一个批处理/shell脚本:
- 对于 Windows,请参阅:从 Java 运行批处理脚本
- 对于 Linux,请参阅:从 Java 运行 shell 脚本
- 对于 macOS,请参阅:从 Java 运行 Unix 系统命令
由于 Ant 是一个 Java 应用程序,最好通过ant-launcher.jar运行 Ant。