Я пытаюсь выполнить Ant-цель от Java для поиска каталогов по критериям. Если вы запускаете searchDirectories
с консоли, результат получается ОК, если из класса Java каталоги не найдены.Ant: Как выполнить Ant от Java
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);
}
EDIT: Если я позвоню Ant из каталога, в котором содержится build.xml, каталоги будут найдены. В противном случае, когда муравей выполняется через эту строку, результат неверен.
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-)? Вы можете выполнить ту же команду, которую используете в своей оболочке. – beatngu13
beatngu13, он все равно не работает –