docs: public List<String> createCommandLine() {
          List<String> cmdline = new ArrayList<>(50);
          cmdline.add(javaExecutable);
          cmdline.add("-XX:+HeapDumpOnOutOfMemoryError");
          cmdline.add("-Dsun.net.inetaddr.ttl=300");
          cmdline.add("-Dsun.net.inetaddr.negative.ttl=3600");
          cmdline.add("-Djava.library.path=" + java_library_path);
          /*
           * Facilitate SPNEGO (Kerberos HTTP) authentication
           */
          cmdline.add("-Djavax.security.auth.useSubjectCredsOnly=false");
  
          if (rmi_host_name != null) {
              cmdline.add("-Djava.rmi.server.hostname=" + rmi_host_name);
          }
          cmdline.add("-Dlog4j.configuration=" + log4j);
          if (m_vemTag != null) {
              cmdline.add("-D" + VEM_TAG_PROPERTY + "=" + m_vemTag);
          }
          if (gcRollover) {
              cmdline.add("-Xloggc:"+ volt_root + "/" + VEM_GC_ROLLOVER_FILE_NAME+" -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles="+VEM_GC_ROLLOVER_FILE_COUNT+" -XX:GCLogFileSize="+VEM_GC_ROLLOVER_FILE_SIZE);
          }
          cmdline.add(maxHeap);
          cmdline.add("-XX:+UseConcMarkSweepGC");
          cmdline.add("-XX:+CMSParallelRemarkEnabled");
          cmdline.add("-XX:+UseTLAB");
          cmdline.add("-XX:CMSInitiatingOccupancyFraction=75");
          cmdline.add("-XX:+UseCMSInitiatingOccupancyOnly");
          cmdline.add("-XX:+CMSClassUnloadingEnabled");
  
          /*
           * Have RMI not invoke System.gc constantly
           */
          cmdline.add("-Dsun.rmi.dgc.server.gcInterval=" + Long.MAX_VALUE);
          cmdline.add("-Dsun.rmi.dgc.client.gcInterval=" + Long.MAX_VALUE);
          /*
           * To ensure that CMS is low pause on a consistent basis, have it wait a looong time
           * for young gen GCs to occur when load is low. Scavenge before remark
           * so when remarks occur they are a consistent duration.
           */
          cmdline.add("-XX:CMSWaitDuration=120000");
          cmdline.add("-XX:CMSMaxAbortablePrecleanTime=120000");
          cmdline.add("-XX:+ExplicitGCInvokesConcurrent");
          cmdline.add("-XX:+CMSScavengeBeforeRemark");
          //If a Volt root is provided such as local cluster or VEM, put the error file in it
          if ( !volt_root.isEmpty() ) {
              cmdline.add("-XX:ErrorFile=" + volt_root + "/hs_err_pid%p.log");
          }
          if (conditionalCardMark) {
              cmdline.add("-XX:+UseCondCardMark");
          }
          cmdline.add("-classpath"); cmdline.add(classPath);
  
          if (includeTestOpts)
          {
              cmdline.add("-DLOG_SEGMENT_SIZE=8");
              if (!m_newCli) {
                  cmdline.add("-DVoltFilePrefix=" + voltFilePrefix);
              }
              cmdline.add("-ea");
              cmdline.add("-XX:MaxDirectMemorySize=2g");
          }
          else
          {
              cmdline.add("-server");
              cmdline.add("-XX:HeapDumpPath=/tmp");
              if (!initialHeap.isEmpty()) {
                  cmdline.add(initialHeap);
                  cmdline.add("-XX:+AlwaysPreTouch");
              }
          }
  
          if (m_isEnterprise)
          {
              cmdline.add("-Dvolt.rmi.agent.port=" + jmxPort);
              cmdline.add("-Dvolt.rmi.server.hostname=" + jmxHost);
          }
  
          // add default keystore, truststore
          if (m_sslEnable) {
              cmdline.add("-Djavax.net.ssl.keyStore=tests/frontend/org/voltdb/keystore");
              cmdline.add("-Djavax.net.ssl.keyStorePassword=password");
              cmdline.add("-Djavax.net.ssl.trustStore=tests/frontend/org/voltdb/keystore");
              cmdline.add("-Djavax.net.ssl.trustStorePassword=password");
          }
  
  
          if (javaProperties != null) {
              for (Entry<String, String> e : javaProperties.entrySet()) {
                  if (e.getValue() != null) {
                      cmdline.add("-D" + e.getKey() + "=" + e.getValue());
                  }
                  else {
                      cmdline.add("-D" + e.getKey());
                  }
              }
          }
  
          if (debugPort > -1) {
              cmdline.add("-Xdebug");
              cmdline.add("-agentlib:jdwp=transport=dt_socket,address=" + debugPort + ",server=y,suspend=n");
          }
  
  
          //
          // Process JVM options passed through the VOLTDB_OPTS environment variable
          //
          List<String> additionalJvmOptions = new ArrayList<>();
          String nonJvmOptions = AdditionalJvmOptionsProcessor
                  .getJvmOptionsFromVoltDbOptsEnvironmentVariable(additionalJvmOptions);
          cmdline.addAll(additionalJvmOptions);
  
  
          //
          // VOLTDB main() parameters
          //
          cmdline.add("org.voltdb.VoltDB");
          cmdline.add(m_startAction.verb());
  
          if (m_startAction == StartAction.PROBE && m_safeMode) {
              cmdline.add("safemode");
          }
  
          if (m_startAction == StartAction.PROBE && m_enableAdd) {
              cmdline.add("enableadd");
          }
  
          if (m_sslEnable) {
              cmdline.add("enableSSL");
          }
  
          if (m_sslExternal) {
              cmdline.add("externalSSL");
          }
  
          if (m_sslInternal) {
              cmdline.add("internalSSL");
          }
  
          cmdline.add("host");
          if (!m_coordinators.isEmpty()) {
              cmdline.add(Joiner.on(',').skipNulls().join(m_coordinators));
          } else {
              cmdline.add(m_leader);
          }
          if (jarFileName() != null) {
              cmdline.add("catalog"); cmdline.add(jarFileName());
          }
          //Add deployment if its not probe
          if (pathToDeployment() != null && m_startAction != StartAction.PROBE) {
              cmdline.add("deployment"); cmdline.add(pathToDeployment());
          }
  
          if (includeTestOpts)
          {
              cmdline.add("timestampsalt"); cmdline.add(Long.toString(m_timestampTestingSalt));
          }
  
          cmdline.add("port"); cmdline.add(Integer.toString(m_port));
          cmdline.add("internalport"); cmdline.add(Integer.toString(m_internalPort));
          if (m_adminPort != -1)
          {
              cmdline.add("adminport"); cmdline.add(Integer.toString(m_adminPort));
          }
          if (zkport != -1)
          {
              cmdline.add("zkport"); cmdline.add(Integer.toString(zkport));
          }
          if (m_drAgentPortStart != -1)
          {
              cmdline.add("replicationport"); cmdline.add(Integer.toString(m_drAgentPortStart));
          }
          if (m_drPublicHost != null || m_drPublicPort != VoltDB.DISABLED_PORT) {
              cmdline.add("drpublic");
              String param = (m_drPublicHost != null && !m_drPublicHost.isEmpty()) ? m_drPublicHost : "";
              if (m_drPublicPort != VoltDB.DISABLED_PORT) {
                  param = (param.isEmpty()) ? Integer.toString(m_drPublicPort)
                                            : param + ":" + Integer.toString(m_drPublicPort);
              }
              cmdline.add(param);
          }
  
          if (target() == BackendTarget.NATIVE_EE_VALGRIND_IPC) {
              cmdline.add("valgrind");
          }
  
          if (m_internalInterface != null && !m_internalInterface.isEmpty())
          {
              cmdline.add("internalinterface"); cmdline.add(m_internalInterface);
          }
  
          if (m_internalInterface != null && (m_externalInterface != null && !m_externalInterface.isEmpty()))
          {
              cmdline.add("externalinterface"); cmdline.add(m_externalInterface);
          }
          if (m_httpPort != Constants.HTTP_PORT_DISABLED) {
              cmdline.add("httpport"); cmdline.add(Integer.toString(m_httpPort));
          }
  
          if (m_forceVoltdbCreate)
          {
              cmdline.add("force");
          }
  
          if (m_isEnterprise) {
              cmdline.add("license"); cmdline.add(m_pathToLicense);
          }
  
          if (m_userSchemas != null) {
              cmdline.add("schema");
              cmdline.add(m_userSchemas.stream().map(File::getAbsolutePath).collect(Collectors.joining(",")));
          }
  
          if (customCmdLn != null && !customCmdLn.trim().isEmpty())
          {
              cmdline.add(customCmdLn);
          }
          //
          // append non JVM options from the value of the VOLTDB_OPTIONS
          // environment variable to customCmdLn
          //
          if( nonJvmOptions != null && !nonJvmOptions.trim().isEmpty())
          {
              cmdline.add(nonJvmOptions);
          }
  
          if (m_backend.isIPC) {
              cmdline.add("ipcport");
              cmdline.add(String.valueOf(m_ipcPort));
          }
  
          if (target() == BackendTarget.NATIVE_EE_IPC) {
              cmdline.add("ipc");
          }
  
          if (m_tag != null) {
              cmdline.add("tag"); cmdline.add(m_tag);
          }
  
          // handle overrides for testing hotfix version compatibility
          if (m_versionStringOverrideForTest != null) {
              assert(m_versionCompatibilityRegexOverrideForTest != null);
              cmdline.add("versionoverride");
              cmdline.add(m_versionStringOverrideForTest);
              cmdline.add(m_versionCompatibilityRegexOverrideForTest);
              if (m_buildStringOverrideForTest != null) {
                  cmdline.add("buildstringoverride");
                  cmdline.add(m_buildStringOverrideForTest);
              }
          }
          if (m_isPaused || (m_modeOverrideForTest != null && m_modeOverrideForTest.equalsIgnoreCase("paused")) ) {
              cmdline.add("paused");
          }
  
          //Add mesh and hostcount for probe only.
          if (m_startAction == StartAction.PROBE) {
              cmdline.add("mesh"); cmdline.add(Joiner.on(',').skipNulls().join(m_coordinators));
              cmdline.add("hostcount"); cmdline.add(Integer.toString(m_hostCount));
          }
  
          if (!m_startAction.isLegacy()) {
              cmdline.add("voltdbroot"); cmdline.add(m_voltdbRoot.getPath());
          }
  
          if (m_placementGroup != null) {
              cmdline.add("placementgroup"); cmdline.add(m_placementGroup);
          }
  
          if ( m_missingHostCount > 0) {
              cmdline.add("missing"); cmdline.add(Integer.toString(m_missingHostCount));
          }
          return cmdline;
      }