如何在从java调用ant目标时设置记录器

如何在从java调用ant目标时设置记录器,java,shell,ant,Java,Shell,Ant,我必须从java类中调用一个ant目标,目前它是从它设置的sh脚本中调用的-logger.class 我已经编写了java代码来实现这一点 Project p = new Project(); p.setUserProperty("ant.file", buildFile.getAbsolutePath()); p.init(); ProjectHelper helper = ProjectHelper.getProjectHelper();

我必须从java类中调用一个ant目标,目前它是从它设置的sh脚本中调用的-logger.class

我已经编写了java代码来实现这一点

Project p = new Project();
        p.setUserProperty("ant.file", buildFile.getAbsolutePath());
        p.init();
        ProjectHelper helper = ProjectHelper.getProjectHelper();
        p.addReference("ant.projectHelper", helper);
        helper.parse(p, buildFile);
        p.executeTarget(TARGET);
有人能告诉我如何使用相同的代码序列设置记录器吗

错误:

Class not found:util.logger.CustomLogger
java.lang.RuntimeException
        at org.apache.tools.ant.Main.createLogger(Main.java:850)
        at org.apache.tools.ant.Main.addBuildListeners(Main.java:795)

您必须使用addBuildListener将记录器添加到项目中,ant提供了一些实现,这些实现也实现了
BuildLogger

所以
或者无论您的记录器是什么(只要它实现了
BuildListener
),都应该这样做

您是否已将
CustomLogger
类添加到类路径?是的,是否已将CustomLogger添加到类路径
project.addBuildListener(new DefaultLogger());