code: public static void main(final String[] args) throws BindException, InjectionException {
  
      final Tang tang = Tang.Factory.getTang();
  
      final JavaConfigurationBuilder cb = tang.newConfigurationBuilder();
  
      try{
        new CommandLine(cb)
            .registerShortNameOfClass(NodeListFilePath.class)
            .registerShortNameOfClass(SshPortNum.class)
            .processCommandLine(args);
      } catch(final IOException ex) {
        LOG.log(Level.SEVERE, "Missing parameter 'nodelist' or wrong parameter input.");
        throw new RuntimeException("Missing parameter 'nodelist' or wrong parameter input: ", ex);
      }
  
      final Injector injector = tang.newInjector(cb.build());
  
      final String nodeListFilePath = injector.getNamedInstance(NodeListFilePath.class);
      final int sshPortNum = injector.getNamedInstance(SshPortNum.class);
  
      final Configuration runtimeConf = getRuntimeConfiguration(nodeListFilePath, sshPortNum);
      final Configuration driverConf = getDriverConfiguration();
  
      final LauncherStatus status = DriverLauncher
          .getLauncher(runtimeConf)
          .run(driverConf, JOB_TIMEOUT);
      LOG.log(Level.INFO, "REEF job completed: {0}", status);
    }
docs: Start Hello REEF job.
  
  @param args command line parameters.
  @throws BindException      configuration error.
  @throws InjectionException configuration error.