On 64-bit RHEL5 running Java 1.6.0 update 16, root can successfully run a Java program but a user can't because libjli.so
supposedly can't be found. SELinux is turned off and the environment is the same before the program is run. I've tried putting libjli.so
in the LD_LIBRARY_PATH
but it doesn't make a difference.
How do I fix this error?
The first possibility that springs to mind is that
libjli.so
is readable only by root. So step one:If it's in an odd location (not in
/usr/lib
or/lib
) create the file/etc/ld.so.conf.d/java.conf
containing the path to the directory containinglibjli.so
and run/sbin/ldconfig
as root.For more troubleshooting info, run this command, once as root and once as a non-root user:
In a sane world, the output of the two would be identical. How they differ should tell you a lot about why this is failing.