java - Ant:从ant执行一个java程序并存储返回值
问题描述
我是蚂蚁的新手。我基本上是在尝试从 ant 执行一个 java 程序。我已经设法让它发挥作用。但是,我不确定如何在 ant 中捕获程序返回的值,以便在 ant 文件中使用它进行进一步操作。
构建.xml
<?xml version="1.0" encoding="UTF-8"?>
<project default="run" name="Experiment 1">
<property name="shimura" value="Danzo!!!"/>
<target name="run" depends="compile">
<java classname="com.sim.expt.Demo">
<classpath path="./staging" />
<arg line="${shimura}"/>
</java>
</target>
<target name="compile">
<javac srcdir="./src" includeantruntime="false" destdir="./staging" />
</target>
</project>
Java程序:
package com.sim.expt;
public class Demo {
public static void main(String[] args) {
String name=args[0];
System.out.println("Nani!!!!!!!"+name);
}
}
解决方案
使用outputproperty
属性,详见https://ant.apache.org/manual/Tasks/java.html
<?xml version="1.0" encoding="UTF-8"?>
<project default="run" name="Experiment 1">
<property name="shimura" value="Danzo!!!"/>
<target name="run" depends="compile">
<java classname="com.sim.expt.Demo" outputproperty="myprop">
<classpath path="./staging" />
<arg line="${shimura}"/>
</java>
</target>
<target name="compile">
<javac srcdir="./src" includeantruntime="false" destdir="./staging" />
</target>
</project>
然后${myprop}
将包含来自 stdout 和 stderr 的输出(除非单独重定向)。
推荐阅读
- python - 如何将批处理数据集转换为 numpy
- linux - 如何为 linux 编译 droidcam 32 位
- wix - 使用从 RegistrySearch 设置的自定义操作属性为补丁 (.msp) 设置 INSTALLDIR
- vba - Powershell Wscript.Shell 弹出窗口超时不超时
- database-backups - 使用 codeigniter 4 进行数据库备份
- python - Python:如何计算入口点和点之间的运行差异?
- python - 数据框熊猫错误:在 groupby.rank 中没有要聚合的数字类型
- c - 运行并发子进程
- vscode-settings - 我的 keybindings.json 对 VSCode 没有影响
- swift - 快速按给定时间将日期排序为最接近的日期