我们可以运行保存在jar文件中的ant文件吗?

时间:2013-05-07 10:33:36

标签: java ant jar

是否可以在另一个java程序的任何jar中运行一个ant文件?

Ant build.xml文件保存在masterjar.jar中。

我正在尝试:

    pro = Runtime.getRuntime().exec("ant compile",null, new File("/home/sys/masterjar.jar!/
"));

但我收到错误消息:

java.io.IOException: Cannot run program "ant" (in directory "/home/sys/masterjar.jar!"): error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1042)
    at java.lang.Runtime.exec(Runtime.java:615)
    at java.lang.Runtime.exec(Runtime.java:448)
    at Runner.TCRunner.main(TCRunner.java:100)
Caused by: java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:135)
    at java.lang.ProcessImpl.start(ProcessImpl.java:130)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1023)
    ... 3 more

如果我通过将jar文件保存在jar之外来尝试它,我就能成功运行它。

1 个答案:

答案 0 :(得分:0)

Ant无法将该构建文件拉出来。你应该从jar中提取它(使用ClassLoader.getResourceAsStream(),也许?),save it to a temporary file,然后将Ant指向它。