diff --git a/plugins/org.eclipse.justj.p2/src/org/eclipse/justj/p2/P2Manager.java b/plugins/org.eclipse.justj.p2/src/org/eclipse/justj/p2/P2Manager.java
index 054c934..807667d 100644
--- a/plugins/org.eclipse.justj.p2/src/org/eclipse/justj/p2/P2Manager.java
+++ b/plugins/org.eclipse.justj.p2/src/org/eclipse/justj/p2/P2Manager.java
@@ -35,6 +35,7 @@
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
+import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -855,6 +856,16 @@
       int index = args.indexOf(name);
       if (index == -1)
       {
+        Pattern pattern = Pattern.compile(Pattern.quote(name) + "\\s+" + "([^-].*)");
+        for (String arg : args)
+        {
+          Matcher matcher = pattern.matcher(arg);
+          if (matcher.matches())
+          {
+            args.remove(arg);
+            return matcher.group(1);
+          }
+        }
         return defaultValue;
       }
       else
@@ -989,6 +1000,17 @@
           environment.put("PATH", path);
           environment.put("Path", path);
         }
+        else if (absoluteExecutablePath != null && File.separatorChar == '\\')
+        {
+          // Ensure that the path on which it is found is first in the search list so that other things like "find" look here first.
+          //
+          fullPath = absoluteExecutablePath.getParent() + File.pathSeparator + fullPath;
+
+          // Put it in for both case variants because a debug launch worked but a run launch did not.  Go figure.
+          //
+          environment.put("PATH", fullPath);
+          environment.put("Path", fullPath);
+        }
 
         if (absoluteExecutablePath == null)
         {
diff --git a/releng/org.eclipse.justj.tools.parent/pom.xml b/releng/org.eclipse.justj.tools.parent/pom.xml
index 2e8821c..e080f53 100644
--- a/releng/org.eclipse.justj.tools.parent/pom.xml
+++ b/releng/org.eclipse.justj.tools.parent/pom.xml
@@ -53,7 +53,7 @@
     </repository>
     <repository>
       <id>eclipse-platform-repository</id>
-      <url>https://download.eclipse.org/eclipse/updates/4.26-I-builds</url>
+      <url>https://download.eclipse.org/eclipse/updates/4.27-I-builds</url>
       <layout>p2</layout>
     </repository>
   </repositories>
