code: @SuppressWarnings({"checkstyle:magicnumber"})
  	public static Process launchVMWithClassPath(String classToLaunch, String classpath,
  			String... additionalParams) throws IOException {
  		final String javaBin = getVMBinary();
  		if (javaBin == null) {
  			throw new FileNotFoundException("java"); //$NON-NLS-1$
  		}
  		final long totalMemory = Runtime.getRuntime().maxMemory() / 1024;
  		final String userDir = FileSystem.getUserHomeDirectoryName();
  		final String[] params;
  		final int nParams;
  		if (classpath != null && !"".equals(classpath)) { //$NON-NLS-1$
  			nParams = 5;
  			params = new String[additionalParams.length + nParams];
  			params[0] = javaBin;
  			params[1] = "-Xmx" + totalMemory + "k"; //$NON-NLS-1$ //$NON-NLS-2$
  			params[2] = "-classpath"; //$NON-NLS-1$
  			params[3] = classpath;
  			params[4] = classToLaunch;
  		} else {
  			nParams = 3;
  			params = new String[additionalParams.length + nParams];
  			params[0] = javaBin;
  			params[1] = "-Xmx" + totalMemory + "k"; //$NON-NLS-1$ //$NON-NLS-2$
  			params[2] = classToLaunch;
  		}
  		System.arraycopy(additionalParams, 0, params, nParams, additionalParams.length);
  		return Runtime.getRuntime().exec(params, null, new File(userDir));
  	}
docs: Run a new VM with the given class path.
  
  @param classToLaunch is the class to launch.
  @param classpath is the class path to use.
  @param additionalParams is the list of additional parameters
  @return the process that is running the new virtual machine, neither <code>null</code>
  @throws IOException when a IO error occurs.
  @since 6.2