[fedora-java] /usr/lib/jni support in Fedora

Florian Weimer fweimer at redhat.com
Tue Jul 29 11:05:17 UTC 2014


As far as I can tell, currently, System.loadLibrary() is mostly unusable 
for Java libraries because they cannot influence the library search 
path.  If you want to transparently load a DSO, you need to use 
System.load() and hard-code the path.  This probably means patching 
upstream sources.

Debian patches the default search path so that System.loadLibrary() 
searches /usr/lib/jni for DSOs with native code.  This means that 
classes which call System.loadLibrary() just work, assuming that the 
Debian package installs its DSOs into /usr/lib/jni.

Can we do something similar in Fedora?  We probably want /usr/lib/jni 
and /usr/lib64/jni, for consistency with the rest of the system.

The upstream default search path starts with 
"/usr/java/packages/lib/amd64" (and variants for other architectures), 
but this isn't mentioned in the Fedora guidelines.  I'm also not sure if 
we want to use this file system location because it doesn't look 
particularly FHS-compliant.  But the proprietary JDKs could install a 
symlink there so that /usr/lib{,64}/jni is searched as well.

-- 
Florian Weimer / Red Hat Product Security


More information about the java-devel mailing list