code: public void add(final String key, final String value) {
          if (key != null) {
              final Argument argument;
              if (key.startsWith("-D")) {
                  if (value == null) {
                      argument = createSystemProperty(key);
                  } else {
                      argument = createSystemProperty(key, value);
                  }
              } else {
                  if (value == null) {
                      argument = create(key);
                  } else {
                      argument = create(key, value);
                  }
              }
              add(argument);
          }
      }
docs: Adds a key/value pair to the collection of arguments.
  <p/>
  If the key starts with {@code -D} it's assumed it's a system property argument and the prefix will be stripped
  from the key when checking for uniqueness.
  
  @param key   the key for the argument
  @param value the value of the argument which may be {@code null}