是否可以在另一个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之外来尝试它,我就能成功运行它。
答案 0 :(得分:0)
Ant无法将该构建文件拉出来。你应该从jar中提取它(使用ClassLoader.getResourceAsStream()
,也许?),save it to a temporary file,然后将Ant指向它。