I don't have any experience of this, but a bit of digging shows that the library should be unloaded when the classloader which loaded the library is garbage collected.
Links:
- Invocation API docs (Sun) - look for "Library and Version Management"
- Java JNI DLL Unloading tutorial