code: @SuppressWarnings("checkstyle:illegalcatch")
    public static void main(final String[] args) {
  
      LOG.log(Level.INFO, "Entering REEFLauncher.main().");
  
      LOG.log(Level.FINE, "REEFLauncher started with user name [{0}]", System.getProperty("user.name"));
      LOG.log(Level.FINE, "REEFLauncher started. Assertions are {0} in this process.",
              EnvironmentUtils.areAssertionsEnabled() ? "ENABLED" : "DISABLED");
  
      if (args.length != 1) {
        final String message = "REEFLauncher have one and only one argument to specify the runtime clock " +
            "configuration path";
  
        throw fatal(message, new IllegalArgumentException(message));
      }
  
      final REEFLauncher launcher = getREEFLauncher(args[0]);
  
      Thread.setDefaultUncaughtExceptionHandler(new REEFUncaughtExceptionHandler(launcher.envConfig));
  
      try (final REEFEnvironment reef = REEFEnvironment.fromConfiguration(launcher.envConfig)) {
        reef.run();
      } catch (final Throwable ex) {
        throw fatal("Unable to configure and start REEFEnvironment.", ex);
      }
  
      ThreadLogger.logThreads(LOG, Level.FINEST, "Threads running after REEFEnvironment.close():");
  
      LOG.log(Level.INFO, "Exiting REEFLauncher.main()");
  
      System.exit(0); // TODO[REEF-1715]: Should be able to exit cleanly at the end of main()
    }
docs: Launches a REEF client process (Driver or Evaluator).
  @param args Command-line arguments.
  Must be a single element containing local path to the configuration file.