Добавление JttpClient jar к затмению

1

Я добавил Apache HttpClient 4.3.5 jar в новую пользовательскую библиотеку в моем проекте, но всякий раз, когда я запускаю свою программу, я получаю ошибку выполнения NoClassDefFound. Я могу сказать, что это вызвано специально классами HttpClient. Я не знаю, как облегчить эту проблему.

  • 0
    Вы добавили банку через Add external jars ?
  • 0
    Как у вас работает программа? Щелкнув правой кнопкой мыши класс с методом main() из Eclipse и выбрав Run ? Или в командной строке?
Показать ещё 1 комментарий
Теги:
jar
apache-httpclient-4.x

1 ответ

1
Лучший ответ

NoClassDefFound обычно означает, что вам не нужны необходимые зависимости от класса classpath.

Если вы посмотрите на Maven pom.xml для httpclient, вы увидите, что он имеет некоторые транзитивные зависимости, значения зависят от других артефактов.

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpcore</artifactId>
</dependency>
<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
</dependency>
<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
</dependency>

Таким образом, вы можете видеть три артефакта, которые httpclient зависит от: httpcore, commons-logging и commons-codec.

При этом вы можете пропустить эти зависимости (отсюда NoClassDefFound). Если вы используете Maven, когда вы добавляете httpclient в качестве зависимости, Maven вытащит эти транзитивные зависимости int для вас.

Однако, похоже, вы не используете Maven. Итак, что вы хотите сделать, это загрузить весь пакет на домашней странице HttpComponents. Если вы возьмете двоичные варианты, например 4.3.5.zip, и распакуйте его, вы увидите все эти банки в каталоге lib:

commons-codec-1.6
commons-logging-1.1.3
fluent-hc-4.3.5
httpclient-4.3.5
httpclient-cache-4.3.5
httpcore-4.3.2
httpmime-4.3.5

Лучше всего просто добавить все эти банки в одну библиотеку. Затем добавьте всю эту библиотеку в свой проект.

  1. Простой переход к [Окно] → [Настройки] → [Java] → [Путь сборки] → [Пользовательские библиотеки]
  2. Выберите New и введите имя
  3. Выберите новую библиотеку, выберите Add External Jars, просмотрите и добавьте все банки в lib который вы загрузили.
  4. Добавьте библиотеку в свой проект.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню