HttpClient NoClassDefFoundError

Я пытаюсь запустить приложение приложения от HttpClient 4.0.1. Это - файл ClientMultiThreadedExecution.java от раздела в качестве примера. Я вставил эти файлы в пути к классу: apache-mime4j-0.6.jar;commons-codec-1.3.jar;commons-logging-1.1.1.jar;httpclient-4.0.1.jar;httpcore-4.0.1.jar;httpmime-4.0.1.jar и файл компилирует правильно. Во времени выполнения я получаю следующую ошибку:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest
Caused by: java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpUriRequest
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

Я пропускаю ссылку? Это походит на ошибку пути к классу, но я не могу выяснить который файл банки включать?Заранее спасибо за помощь.

13
задан skaffman 12 July 2010 в 18:45
поделиться

2 ответа

Это исключение сообщает что упомянутый класс отсутствует в пути к классам среды выполнения .

Есть несколько способов указать путь к классам среды выполнения, в зависимости от того, как вы выполняете программу. Поскольку приличная IDE прозрачно берет все это из ваших рук, держу пари, что вы запускаете это в командной строке.

Если вы запускаете его как файл JAR java.exe -jar или дважды щелкнув файл, затем вам нужно указать путь к классам в записи Class-Path файла JAR MANIFEST.MF . Обратите внимание, что переменная среды % CLASSPATH% и аргументы -cp и -classpath игнорируются всякий раз, когда вы выполняете JAR.

Если вы запускаете его как обычное Java-приложение с помощью java.exe , вам необходимо указать его в -cp или -classpath. аргумент. Обратите внимание, что всякий раз, когда вы используете этот аргумент, переменная среды % CLASSPATH% игнорируется .

В любом случае путь к классам должен состоять из строки (полукольцом), разделенной двоеточиями, путей к файлам JAR (либо абсолютных путей, либо относительно текущего рабочего каталога). Например.

java -cp .;/path/to/file1.jar;/path/to/file2.jar com.example.MyClass

(если вы используете Unix / Linux, используйте двоеточие вместо точки с запятой в качестве разделителя пути)

5
ответ дан 2 December 2019 в 00:57
поделиться

Этот класс находится в httpclient-4.0.1.jar (я только что загрузил его, чтобы убедиться), поэтому я подозреваю, что вы неправильно поместили его в путь к классам.

Как вы компилируете и запускаете свой код?

5
ответ дан 2 December 2019 в 00:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: