package org.eclipse.jdt.internal.launching;/* * (c) Copyright IBM Corp. 2000, 2001. * All Rights Reserved. */import org.eclipse.debug.core.ILaunchManager;import org.eclipse.jdt.launching.AbstractVMInstall;import org.eclipse.jdt.launching.IVMInstallType;import org.eclipse.jdt.launching.IVMRunner;public class StandardVM extends AbstractVMInstall {	StandardVM(IVMInstallType type, String id) {		super(type, id);	}	/**	 * @see IVM#getIVMRunner(String)	 */	public IVMRunner getVMRunner(String mode) {		if (ILaunchManager.RUN_MODE.equals(mode)) {			return new StandardVMRunner(this);		} else if (ILaunchManager.DEBUG_MODE.equals(mode)) {			return new StandardVMDebugger(this);		}		return null;	}}