In the last episode (Sep 25), H. William Welliver III said:
libjvm.so is designed to be dlopened at runtime (found on LD_LIBRARY_PATH). Any application, that tries to link that library, is buggy. Please never ever link it directly.
That statement is a little odd... Isn't LD_LIBRARY_PATH at least partially designed for the purpose of finding libraries that have been dynamically linked?
Perhaps it shouldn't be called libjvm.so if it's not meant to be linked as a library...
Both linking and dlopen'ing are valid, but a distribution with mutiple possible jvms might prefer to dlopen. Section 7.2 of the JNI Programmer's Guide has some examples:
http://java.sun.com/docs/books/jni/html/invoke.html