Method runMethod = clazz.getMethod("run", new Class[] {String[].class, Runnable.class});
Method runMethod = clazz.getMethod("startup", new Class[] {String[].class, Runnable.class});
	public synchronized void start() {		if (platformDirectory == null)			throw new IllegalStateException("Could not start the Framework - (not deployed)"); //$NON-NLS-1$		if (frameworkClassLoader != null) {			context.log("Framework is already started"); //$NON-NLS-1$			return;		}		Map initalPropertyMap = buildInitialPropertyMap();		String[] args = buildCommandLineArguments();		ClassLoader original = Thread.currentThread().getContextClassLoader();		try {			System.setProperty("osgi.framework.useSystemProperties", "false"); //$NON-NLS-1$ //$NON-NLS-2$			URL[] osgiURLArray = {new URL((String) initalPropertyMap.get(OSGI_FRAMEWORK))};			frameworkClassLoader = new ChildFirstURLClassLoader(osgiURLArray, this.getClass().getClassLoader());			Class clazz = frameworkClassLoader.loadClass(STARTER);			Method setInitialProperties = clazz.getMethod("setInitialProperties", new Class[] {Map.class}); //$NON-NLS-1$			setInitialProperties.invoke(null, new Object[] {initalPropertyMap});			Method runMethod = clazz.getMethod("run", new Class[] {String[].class, Runnable.class}); //$NON-NLS-1$			runMethod.invoke(null, new Object[] {args, null});			frameworkContextClassLoader = Thread.currentThread().getContextClassLoader();		} catch (Exception e) {			context.log("Error while starting Framework", e); //$NON-NLS-1$			throw new RuntimeException(e.getMessage());		} finally {			Thread.currentThread().setContextClassLoader(original);		}	}