I don't know the details of System.loadLibrary enough to answer your
question; however: the Java code and the Lisp code differ in the use
of loadLibrary() vs load(). Have you tried using the same method in
both cases?
If I understand correctly, loadLibrary() loads a library from the system load paths, and modifies the name passed to it (so that loadLibrary("foo")
will load foo.dll on windows and libfoo.so on unixes), load() loads any file as a dynamic library, and doesn't do the name modification.