从java程序执行runtime cmd

时间:2011-07-06 10:02:19

标签: java runtime.exec

我想通过我的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

如何解决?

5 个答案:

答案 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的实际位置