1
JavaからAntターゲットを実行して、ディレクトリを基準で検索しようとしています。コンソールからsearchDirectories
を実行すると、Javaクラスからディレクトリが見つからない場合、結果はOKです。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);
}
編集:私はのbuild.xmlが含まれているディレクトリからのAntを呼び出す場合、ディレクトリが検索されます。さもなければ、この行を介して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- )?シェルで使用するのと同じコマンドを実行することができます。 – beatngu13
beatngu13、とにかく動作しません –