java调用ant_从java调用ant,然后在ant终止后返回到java

查看Ant的主类org.apache.tools.ant.Main的来源。您可以尝试直接调用其main或start方法,或将其部分逻辑复制到您的应用程序中。 完成这些方法后,应用程序应继续执行。 del>

编辑:

The answer by Paul Cager是正确的,我在某种程度上错过了Ant的Main调用System.exit()的事实。

关于main / start / startAnt方法的另一个问题是它们希望将参数作为字符串数组。这可能很方便,但它不是特别类型安全或面向对象。要为给定的构建文件和目标调用Ant,可以使用以下内容:

public static void runAnt(String buildfile, String target) throws Exception {

File buildFile = new File(buildfile);

Exception error = null;

org.apache.tools.ant.Project project = new org.apache.tools.ant.Project();

try {

project.addBuildListener(new org.apache.tools.ant.listener.Log4jListener());

project.fireBuildStarted();

project.init();

project.setUserProperty(org.apache.tools.ant.MagicNames.ANT_FILE, buildFile.getAbsolutePath());

org.apache.tools.ant.ProjectHelper.configureProject(project, buildFile);

project.executeTarget(target);

} catch (Exception e) {

error = e;

throw e;

} finally {

project.fireBuildFinished(error);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值