code: public static void main(String[] args) {
          if (args.length != 2) {
              System.err.println(usage("Invalid number of args: " + args.length));
              System.exit(1);
          }
  
          String targetName = args[0].toLowerCase();
          Monitor target = null;
          try {
              target = Monitor.valueOf(targetName.toUpperCase());
  
          } catch (Exception e) {
              StringBuilder msg = new StringBuilder("Target must be '");
              msg.append(DUPLICATION);
              msg.append("'");
              System.err.println(usage(msg.toString()));
              System.exit(1);
          }
  
          File configFile = new File(args[1]);
          if (!configFile.exists()) {
              String msg = "File does not exist: " + configFile.getAbsolutePath();
              System.err.println(usage(msg));
              System.exit(1);
          }
  
          InputStream inputStream = null;
          Properties props = null;
          try {
              inputStream = new FileInputStream(configFile);
              props = parseProperties(inputStream);
  
          } catch (IOException e) {
              System.err.println("Error loading properties: " + e.getMessage());
              System.exit(1);
  
          } finally {
              IOUtils.closeQuietly(inputStream);
          }
  
          MonitorsDriver driver = new MonitorsDriver(props);
          driver.monitor(target);
      }
docs: Main