В 64-битном RHEL5 с Java 1.6.0 с обновлением 16 пользователь root может успешно запустить Java-программу, но пользователь не может, потому что libjli.so
якобы не может быть найден. SELinux выключен, и среда остается прежней до запуска программы. Я пробовал поставить libjli.so
в LD_LIBRARY_PATH
но это не имеет значения.
Как исправить эту ошибку?
Первая возможность, которая приходит на ум, заключается в том, что libjli.so
читается только root. Итак, шаг первый:
ls -l $(locate libjli.so)
Если он находится в странном месте (не в /usr/lib
или /lib
) создайте файл /etc/ld.so.conf.d/java.conf
содержащий путь к каталогу, содержащему libjli.so
и беги /sbin/ldconfig
как корень.
Для получения дополнительной информации по устранению неполадок выполните эту команду один раз от имени пользователя root и один раз как пользователь без полномочий root:
ldd java
В нормальном мире результат их работы будет идентичным. Чем они отличаются, это должно многое рассказать вам о том, почему это не удается.