public static void parseFromCommandLineParams(final String[] args) {
		for (final String rawSetting : args) {
			// we expect every setting to have a '='
			final String[] keyValue = rawSetting.split("=");
			if (keyValue.length != 2 || !keyValue[0].startsWith("-")) {
				throw new IllegalArgumentException(
						"The parameter '"
								+ rawSetting
								+ "' is not valid.\nPlease make sure that you follow the format -key=value");
			}
			keyValue[0] = (keyValue[0].length() > 0
					? keyValue[0].substring(1)
					: "");
			if (keyValue[1].startsWith("\"") || keyValue[1].startsWith("'")) {
				keyValue[1] = keyValue[1].substring(1);
			}
			if (keyValue[1].endsWith("\"") || keyValue[1].endsWith("'")) {
				keyValue[1] = keyValue[1]
						.substring(0, keyValue[1].length() - 1);
			}
			try {
				setValue(keyValue[0], keyValue[1]);
			} catch (final ParseException e) {
				throw new IllegalArgumentException(
						"The value of the parameter '" + keyValue[0]
								+ "' is not valid.\nThe expected type is "
								+ booleanOptions.get(keyValue[0]).getValue());
			}
		}
	}