From dcf9688b51012d8ff4dd1da7a774ea5ca0188f5d Mon Sep 17 00:00:00 2001 From: Markus Keller Date: Wed, 18 Jul 2012 10:27:05 -0500 Subject: Bug 327193 - [patch] Launching command line exceeds the windows limit (replace) --- .../eclipse/jdt/internal/launching/StandardVMRunner.java | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMRunner.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMRunner.java index 800d43853..44257bd74 100644 --- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMRunner.java +++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMRunner.java @@ -384,7 +384,7 @@ public class StandardVMRunner extends AbstractVMRunner { //greater than 32767 is a no-go //see http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx if(size > 32767) { - StringBuffer newcp = new StringBuffer(); + StringBuffer newcp = new StringBuffer("CLASSPATH="); //$NON-NLS-1$ for (int i = 0; i < cp.length; i++) { newcp.append(cp[i]); newcp.append(File.pathSeparatorChar); @@ -406,7 +406,7 @@ public class StandardVMRunner extends AbstractVMRunner { if(key.equalsIgnoreCase("CLASSPATH")) { //$NON-NLS-1$ index = idx; } - newenvp[idx] = key+'='+value+File.pathSeparatorChar; + newenvp[idx] = key+'='+value; idx++; } } @@ -415,18 +415,12 @@ public class StandardVMRunner extends AbstractVMRunner { index = getCPIndex(newenvp); } if(index < 0) { - newcp.insert(0, "CLASSPATH="); //$NON-NLS-1$ String[] newenv = new String[newenvp.length+1]; System.arraycopy(newenvp, 0, newenv, 0, newenvp.length); newenv[newenvp.length] = newcp.toString(); - return newenv; + } else { + newenvp[index] = newcp.toString(); } - String oldcp = newenvp[index]; - if(!oldcp.endsWith(File.pathSeparator)) { - oldcp += File.pathSeparatorChar; - } - newcp.insert(0, oldcp); - newenvp[index] = newcp.toString(); return newenvp; } } -- cgit v1.2.3