Что может привести к тому, что jar будет успешно добавлен в проект Java Eclipse, но затем во время выполнения некоторые классы из этого jar не будут найдены с исключениями ClassNotFound?
Мой код компилируется в Eclipse, но я получаю ClassNotFound во время выполнения, как я могу это исправить?
Ответы (4)
Переменная CLASSPATH во время выполнения, вероятно, установлена неправильно, или вы пропустили добавление некоторых классов в файл jar.
@ojblass почти наверняка прав. Просто чтобы расширить его, вы можете создать дамп файла jar с помощью инструмента jar(1) и посмотреть, есть ли там класс. У меня были сюрпризы от Eclipse, когда определение проекта не понимало, что должно было войти в файл jar, который я создавал для запуска с java -jar
.
Кажется, все на правильном пути. Почему бы вам, разархивировав банку, не добавить все это в качестве исходной папки в свой проект eclipse, чтобы посмотреть, сможете ли вы вообще загрузить ее таким образом? Иногда, в зависимости от загрузчика классов, вы можете получить CNFE, если ваш класс доступен несколько раз в пути к классам... загрузчик классов просто отказывается, потому что не знает, какой из них использовать.
У меня возникла эта ошибка из-за отсутствия разрешения. Оказывается, проверка того, подключены ли вы к Интернету (т. е. доступность) и разрешение на использование Интернета, являются отдельными разрешениями (живи и учись).
Отсутствие разрешения привело к сбою приложения с ошибкой ClassNotFound при попытке запустить тест доступности.
Надеюсь, что это поможет кому-то, потому что это не было забавной потерей времени для работы.