docs: public synchronized void start() throws BootstrapException, IOException {
          // find office executable relative to this class's class loader
          String sOffice = System.getProperty("os.name").startsWith("Windows") ? "soffice.exe" : "soffice";
          //accept option !Note! we are using old version notation (- instead of --) to support old version of office
          String oooAcceptOption = "-accept=socket,host=" + host + ",port=" + port + ",tcpNoDelay=1;urp;";
  
          URL[] oooExecFolderURL = new URL[]{new File(oooExecFolder).toURI().toURL()};
          URLClassLoader loader = new URLClassLoader(oooExecFolderURL);
          File fOffice = NativeLibraryLoader.getResource(loader, sOffice);
          if (fOffice == null)
              throw new BootstrapException("no office executable found!");
  
          // create call with arguments
          int arguments = (oooOptions != null) ? oooOptions.size() + 1 : 1;
          arguments++;
          String[] oooCommand = new String[arguments];
          oooCommand[0] = fOffice.getPath();
  
          for (int i = 0; i < oooOptions.size(); i++) {
              oooCommand[i + 1] = (String) oooOptions.get(i);
          }
  
          oooCommand[arguments - 1] = oooAcceptOption;
  
          // start office process
          oooProcess = Runtime.getRuntime().exec(oooCommand);
  
          pipe(oooProcess.getInputStream(), "OUT");
          pipe(oooProcess.getErrorStream(), "ERR");
      }