2015-08-30 2 views
0

По одной из наших служб мы видим следующие ошибки в stderr и остановке связи после этого.

java.lang.UnsatisfiedLinkError: no net in java.library.path 

java.lang.NoClassDefFoundError: Could not initialize class sun.nio.ch.SocketChannelImpl$DefaultOptionsHolder 

Они уходят, когда служба перезапускается, но повторяется через несколько часов! Что может быть причиной этого?

Мы работаем с сервером Oracle, и я проверил, что rt.jar содержит класс в ошибке. Я также подтвердил, что никаких изменений в JRE не было, пока служба работала.

ответ

1

NoClassDefFoundError либо означает, что класс не найден, или класс был найден и загружен, но статический инициализатор завершился с ошибкой при его вызове. Ваши сообщения об ошибках указывают на последний: класс был найден, но статическая инициализация завершилась неудачно. Как правило, в этом случае с ошибкой возникает «Причиненный», и учитывая, что вы включили UnsatisfiedLinkError, я подозреваю, что это является причиной проблемы. Что касается того, что случилось, я не знаю; похоже, что ваш JRE поврежден, если он не смог найти внутреннюю библиотеку.

+0

Спасибо. Это то, что я подозревал, но я проверил вручную, что все файлы .so находятся в такте. Кроме того, если я пишу тестовую программу, которая выполняет 'System.loadLibrary (« net »);', она работает успешно. –

+0

Обеспечьте полную трассировку стека, и кто-то может угадать более глубокую проблему. –

Смежные вопросы