在命令行中覆盖 ANT_HOME 属性
Override ANT_HOME property in command line
我正在编写一个 Java RCP 应用程序,我在其中为 ANT_HOME
输入用户的文件路径,然后评估版本以进行验证。
但是,当我将 ANT_HOME
属性 设置为系统 属性 时,评估失败,因为 ant.bat
脚本包含
rem %~dp0 is expanded pathname of the current script under NT
set DEFAULT_ANT_HOME=%~dp0..
if "%ANT_HOME%"=="" set ANT_HOME=%DEFAULT_ANT_HOME%
我不需要更新我的 ANT_HOME
但需要覆盖该值,以便可以针对我的应用程序的 valid/invalid ant
版本评估用户输入的路径。
即使在我使用命令行时也会出现此问题。请参见下面的屏幕截图。
C:\Users\tunnikrishnan>echo %ANT_HOME%
E:\tools\apache-ant-1.8.4
C:\Users\tunnikrishnan>E:\tools\apache-ant-1.6.5\bin\ant.bat -version
Apache Ant(TM) version 1.8.4 compiled on May 22 2012
C:\Users\tunnikrishnan>
有人可以指导我如何解决这个问题吗?
更改 ProcessBuilder
实例的环境变量。
ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
Map<String, String> env = pb.environment();
env.put("ANT_HOME", getUserAntHome());
pb.redirectErrorStream(true);
Process p = pb.start();
其中 getUserAntHome()
从用户输入中获取值。
我正在编写一个 Java RCP 应用程序,我在其中为 ANT_HOME
输入用户的文件路径,然后评估版本以进行验证。
但是,当我将 ANT_HOME
属性 设置为系统 属性 时,评估失败,因为 ant.bat
脚本包含
rem %~dp0 is expanded pathname of the current script under NT
set DEFAULT_ANT_HOME=%~dp0..
if "%ANT_HOME%"=="" set ANT_HOME=%DEFAULT_ANT_HOME%
我不需要更新我的 ANT_HOME
但需要覆盖该值,以便可以针对我的应用程序的 valid/invalid ant
版本评估用户输入的路径。
即使在我使用命令行时也会出现此问题。请参见下面的屏幕截图。
C:\Users\tunnikrishnan>echo %ANT_HOME%
E:\tools\apache-ant-1.8.4
C:\Users\tunnikrishnan>E:\tools\apache-ant-1.6.5\bin\ant.bat -version
Apache Ant(TM) version 1.8.4 compiled on May 22 2012
C:\Users\tunnikrishnan>
有人可以指导我如何解决这个问题吗?
更改 ProcessBuilder
实例的环境变量。
ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
Map<String, String> env = pb.environment();
env.put("ANT_HOME", getUserAntHome());
pb.redirectErrorStream(true);
Process p = pb.start();
其中 getUserAntHome()
从用户输入中获取值。