从JAVA调用Ant replaceregexp不起作用

时间:2014-01-13 22:31:47

标签: java ant

我需要从我的JAVA代码中调用ANT脚本来替换xml文件中的密码。从cmd行执行时,我的ANT脚本运行正常,但从Java代码调用时它不起作用。

使用简单的例子清楚:

在我的javaAntCall.xml中 -

<replaceregexp file="C:\SmartIXImpl\SmartIX_TEST\tools\test.properties"
           match="OldProperty=(.*)"
           replace="NewProperty=\1"
           byline="true"
/> 

我的java代码有:

ProcessBuilder pb = new ProcessBuilder("cmd", "/c",System.getProperty(TEST_HOME_PROPERTY)          +"/tools/ant/bin/ant", 
"-f",System.getProperty(TEST_HOME_PROPERTY)+"/tools/javaAntCall.xml");

pb.redirectError();
pb.directory(new File("C:/"));

Process p = pb.start();

InputStream is = p.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
      BufferedReader br = new BufferedReader(isr);

String line;
logger.error("*******Test output is");
while ((line = br.readLine()) != null) {
logger.error("*******"+line);
                        }
      int exitValue = p.waitFor();

      logger.error("*******Exited with  "+exitValue);

使用执行此Java代码时,我的ant脚本中的复制等命令在从Java调用时起作用,但在尝试使用replaceregexp时,我得到的exitValue为1.任何帮助解决这个问题都将不胜感激!

0 个答案:

没有答案