0

是否可以运行保存在另一个 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

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

4

1 回答 1

0

Ant 将无法提取该构建文件。您应该改为从 jar 中提取它(使用ClassLoader.getResourceAsStream(),也许?),将其保存到临时文件中,然后将 Ant 指向该文件。

于 2013-05-07T10:40:06.357 回答