我想通过我的java程序运行我的Ant脚本,即(build.xml),以下是mycode的一部分
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("build.xml");
但我收到以下错误
java.io.IOException: Cannot run program "build.xml": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
at java.lang.Runtime.exec(Runtime.java:593)
at java.lang.Runtime.exec(Runtime.java:431)
at java.lang.Runtime.exec(Runtime.java:328)
at com.infotech.RunCmd.main(RunCmd.java:12)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
at java.lang.ProcessImpl.start(ProcessImpl.java:30)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
... 4 more
如何解决?
答案 0 :(得分:1)
您应该执行ant -buildfile build.xml
,因此如果build.xml不在应用程序文件夹中,请使用rt.exec("ant -buildfile build.xml");
( build.xml 不是命令),您将需要给出它的实际路径。
答案 1 :(得分:0)
build.xml实际上是否在您运行的目录中,您是否尝试将文件目录路径放在rt.exec()中?
答案 2 :(得分:0)
您不从命令行调用“build.xml”,而是在当前目录中查找“build.xml”的“ant”。因此,将代码(假设可以从PATH访问ant启动器)更改为:
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("ant");
答案 3 :(得分:0)
首先,可执行文件为ant
。 命令参数是build.xml
。
其次,您需要为文件/可执行文件使用绝对路径,或者确保运行时环境的目录
答案 4 :(得分:0)
build.xml不是可执行文件。你必须提供完整的命令ant ...
还要验证ant和build的实际位置