src/main/java/com/fizzed/jne/JNE.java
synchronized static public void loadLibrary(String name, Options options, Integer majorVersion) {
        // search for specific library
        File f = null;
        try {
            f = findLibrary(name, options, majorVersion);
        } catch (Exception e) {
            log.debug("exception while finding library: " + e.getMessage());
            throw new UnsatisfiedLinkError("Unable to cleanly find (or extract) library [" + name + "] as resource");
        }

        // temporarily prepend library path to load library if found
        if (f != null) {
            // since loading of dependencies of a library cannot dynamically happen
            // and the user would be required to provide a valid LD_LIBRARY_PATH when
            // launching the java process -- we don't need to do use loadLibrary
            // and can just tell it to load a specific library file
            log.debug("System.load(" + f.getAbsolutePath() + ")");
            System.load(f.getAbsolutePath());
        } else {
            log.debug("falling back to System.loadLibrary(" + name + ")");
            // fallback to java method
            System.loadLibrary(name);
        }

        log.debug("library [" + name + "] loaded!");
    }
synchronized static public void loadLibrary(String name, Options options, Integer majorVersion) {
        // search for specific library
        File f = null;
        try {
            f = findLibrary(name, options, majorVersion);
        } catch (Exception e) {
            log.debug("exception while finding library: " + e.getMessage());
            throw new UnsatisfiedLinkError("Unable to cleanly find (or extract) library [" + name + "] as resource");
        }

        // temporarily prepend library path to load library if found
        if (f != null) {
            // since loading of dependencies of a library cannot dynamically happen
            // and the user would be required to provide a valid LD_LIBRARY_PATH when
            // launching the java process -- we don't need to do use loadLibrary
            // and can just tell it to load a specific library file
            log.debug("System.load(" + f.getAbsolutePath() + ")");
            System.load(f.getAbsolutePath());
        } else {
            log.debug("falling back to System.loadLibrary(" + name + ")");
            // fallback to java method
            System.loadLibrary(name);
        }

        log.debug("library [" + name + "] loaded!");
    }
<p>
Loads a dynamic library. Attempts to find (extracts if necessary) a named
library for the runtime operating system and architecture. If the library
was found as a resource and/or extracted, it will then be loaded via
System.load(). If the library was not found as a resource, this method
will simply fallback to System.loadLibrary(). Thus, this method should be
safe as a drop-in replacement for calls to System.loadLibrary().
</p>
<p>
If including the library as a Java resource, the resource path will be
/jne/[os]/[arch]/[lib]. The name of the file will be automatically
adjusted for the target platform. For example, on Windows, to find the
"cat" library, this method will search for "cat.dll". On Linux, to find
the "cat" library, this method will search for "libcat.so". On Mac, to
find the "cat" library, this method will search for "libcat.dylib".
</p>

@param name The library name to find and load
@param options The options to use when finding the library. If null then
the default options will be used.
@param majorVersion
@throws UnsatisfiedLinkError Thrown if a runtime exception occurs while
finding or extracting the executable.