techie
techie

Reputation: 35

executing runtime cmd from java program

I want to run my Ant script i.e (build.xml) through my java program , following is part of mycode

  Runtime rt = Runtime.getRuntime();
  Process proc = rt.exec("build.xml");

but I'm getting the following error

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

How to solve it?

Upvotes: 0

Views: 1230

Answers (4)

Bohemian
Bohemian

Reputation: 425318

For a start, the executable is ant. The command parameter is build.xml.

Secondly, you need to use absolute paths for your files/executables or be sure of your runtime environment's directory

Upvotes: 0

MByD
MByD

Reputation: 137422

You should execute ant -buildfile build.xml, so use rt.exec("ant -buildfile build.xml"); (build.xml is not a command) if build.xml is not in the application folder, you will need to give its actual path.

Upvotes: 1

Fernando Migu&#233;lez
Fernando Migu&#233;lez

Reputation: 11326

You do not invoke "build.xml" from command line, but "ant" that looks for a "build.xml" in your current directory. So change your code (assuming ant launcher is accessible from your PATH) to:

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("ant");

Upvotes: 0

David
David

Reputation: 20073

Is build.xml actually in the directory you are running from, have you tried putting the file directory path in rt.exec()?

Upvotes: 0

Related Questions