1
我正在嘗試從Java執行Ant目標,以便按條件搜索目錄。如果從控制檯運行searchDirectories
,則結果爲OK,如果來自Java類,則找不到目錄。Ant:如何從Java執行Ant
File buildFile = new File("build.xml");
Project p = new Project();
p.setUserProperty("ant.file", buildFile.getAbsolutePath());
p.init();
ProjectHelper helper = ProjectHelper.getProjectHelper();
DefaultLogger consoleLogger = new DefaultLogger();
consoleLogger.setErrorPrintStream(System.err);
consoleLogger.setOutputPrintStream(System.out);
consoleLogger.setMessageOutputLevel(Project.MSG_INFO);
p.addBuildListener(consoleLogger);
p.addReference("ant.projectHelper", helper);
helper.parse(p, buildFile);
try {
p.fireBuildStarted();
p.fireSubBuildStarted();
p.executeTarget("searchDirectories");
} catch (IOException e) {
p.fireBuildFinished(e);
}
編輯:如果我調用Ant從那裏包含build.xml文件的目錄,目錄會被發現。否則當通過這條線執行ant時,結果是不正確的。
ant -buildfile D:\Projects\antproj searchDirectories
我不明白是什麼問題?
['Runtime#exec(String)'](https://docs.oracle.com/javase/8/docs/api/java/lang/Runtime.html#exec-java.lang.String- )?您可以執行您在shell中使用的相同命令。 – beatngu13
beatngu13,反正它不起作用 –