From 35bcdc15f7d829f94651c334c9ebfb09c0e7cd37 Mon Sep 17 00:00:00 2001 From: "Jesse N. Glick" Date: Thu, 27 May 2010 14:46:15 +0000 Subject: [PATCH] Use System.getenv where available. Faster and more reliable than /usr/bin/env and its ilk. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@948853 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/tools/ant/taskdefs/Execute.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/org/apache/tools/ant/taskdefs/Execute.java b/src/main/org/apache/tools/ant/taskdefs/Execute.java index 74f98ca18..bb4b66cf0 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Execute.java +++ b/src/main/org/apache/tools/ant/taskdefs/Execute.java @@ -28,6 +28,7 @@ import java.io.OutputStream; import java.io.StringReader; import java.util.HashMap; import java.util.Iterator; +import java.util.Map; import java.util.Vector; import org.apache.tools.ant.BuildException; @@ -37,6 +38,7 @@ import org.apache.tools.ant.Task; import org.apache.tools.ant.taskdefs.condition.Os; import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.util.FileUtils; +import org.apache.tools.ant.util.JavaEnvUtils; import org.apache.tools.ant.util.StringUtils; /** @@ -156,6 +158,19 @@ public class Execute { return procEnvironment; } procEnvironment = new Vector(); + if (JavaEnvUtils.isAtLeastJavaVersion(JavaEnvUtils.JAVA_1_5)) { + try { + Map/**/ env = (Map) System.class.getMethod("getenv", new Class[0]).invoke(null, new Object[0]); + Iterator it = env.entrySet().iterator(); + while (it.hasNext()) { + Map.Entry entry = (Map.Entry) it.next(); + procEnvironment.add(entry.getKey() + "=" + entry.getValue()); + } + return procEnvironment; + } catch (Exception x) { + x.printStackTrace(); + } + } try { ByteArrayOutputStream out = new ByteArrayOutputStream(); Execute exe = new Execute(new PumpStreamHandler(out));