public final void start(String[] args, boolean startProcess) {
		ArgumentList argumentList = new ArgumentList(args);

		// Ist der Parameter vorhanden
		if (argumentList.hasArgument("-gui") == false) {
			final String errorString = "Der Parameter -gui= wurde nicht angegeben";
			JOptionPane.showMessageDialog(null, errorString, "Parameter -gui= fehlt", JOptionPane.ERROR_MESSAGE);

			// Es macht keinen Sinn weiterzumachen
			return;
		}

		// Wurde eine Klasse angegeben ? Falls ja, wird diese Ausgelesen
		if (argumentList.hasArgument("-prozessname") == false) {
			// Der Prozessname wurde nicht angegeben
			final String errorString = "Der Parameter -prozessname= wurde nicht angegeben";
			JOptionPane.showMessageDialog(null, errorString, "Parameter -prozessname= fehlt", JOptionPane.ERROR_MESSAGE);

			// Es macht keinen Sinn weiterzumachen
			return;
		}
		_className = argumentList.fetchArgument("-prozessname=").asString();

		// WorkingDirecotry auslesen
		File workingDirectory = null;

		if (argumentList.hasArgument("-arbeitsverzeichnis")) {
			// Es wurde ein Arbeitsverzeichnis angegeben
			workingDirectory = new File(argumentList.fetchArgument("-arbeitsverzeichnis").asString());
		}

		// Soll die Oberfläche angezeigt werden (dies wird so gemacht da ein if (argumentList.fetchArgument("-gui=").booleanValue()))
		// zwar funktioniert hat, aber das Argument nicht aus der Liste entfernt wurde !
		final boolean showGUI = argumentList.fetchArgument("-gui=").booleanValue();

		// Es wurden alle Daten ausgelesen, die benötigt werden um einen Prozess zu starten.
		// Da beim rausfiltern der Argumente die ursprüngeliche Argumenteliste verändert wurde (es gibt
		// nun Einträge die <code>null</code> sind, wird diese Liste bereinigt.
		_modifiedArgumentlist = cleanedArgumentArray(args);

		if (showGUI) {
			// Die Oberfläche soll angezeigt werden

			if (startProcess) {
				// Den Prozess starten
				try {
					processScript(_modifiedArgumentlist, null, workingDirectory);
				}
				catch (IOException e) {
					e.printStackTrace();
				}
				showGUI();
			}
			else {
				// Es soll nur die GUI angezeigt werden, der Prozess wird nicht gestartet
				showGUI();
			}

		}
		else {
			// Die Oberfläche soll nicht angezeigt werden

			if (startProcess) {
				// Der Prozess soll sofort gestartet werden
				try {
					processScript(_modifiedArgumentlist, null, workingDirectory);
				}
				catch (IOException e) {
					e.printStackTrace();
				}
			}
			else {
				final String infoMessage = "Es soll keine Oberfläche angezeigt werden und der in den Parametern " +
				        "festgelegte Prozess wird nicht gestartet. Es besteht keine Möglichkeit den Prozess nachträglich " +
				        "zu starten ! Bitte starten Sie den Prozess direkt, falls sie keine GUI sehen möchten.";
				JOptionPane.showMessageDialog(null, infoMessage, "Prozess wird auf Wunsch des Benutzers nicht gestartet", JOptionPane.INFORMATION_MESSAGE);
			}
		}
	}