code: public static boolean initialize(String libraryName, String engine) throws Exception {
          if (_instance == null) {
              _instance = libraryName == null ? new Library() : new Library(libraryName);
  
              if (aprMajorVersion() < 1) {
                  throw new UnsatisfiedLinkError("Unsupported APR Version (" +
                                                 aprVersionString() + ")");
              }
  
              if (!aprHasThreads()) {
                  throw new UnsatisfiedLinkError("Missing APR_HAS_THREADS");
              }
          }
          return initialize0() && SSL.initialize(engine) == 0;
      }
docs: Setup native library. This is the first method that must be called!
  
  @param libraryName the name of the library to load
  @param engine Support for external a Crypto Device ("engine"), usually
  @return {@code true} if initialization was successful
  @throws Exception if an error happens during initialization