2015-09-08 4 views
0

Я создаю кое-что на Java, которое использует Wolfram | Alpha для создания интегралов. Я загрузил Wolfram API, и он поставляется с образцом программы, который вы можете использовать, чтобы нарисовать материал. Here's that at GitHub.Как определить зависимые библиотеки, которые мне нужны

Там есть часть в комментариях, что говорит:

* To compile or run this program you will need the following dependent 
* libraries on your classpath (including WolframAlpha.jar, of course): 
* 
*  commons-codec-1.3.jar 
*  httpclient-4.0.1.jar 
*  httpcore-4.0.1.jar 
*  commons-logging.jar 

... и я понятия не имею, как это сделать. Я использую этот проект как способ изучения Java, поэтому я пропускаю кучу основополагающих принципов сна.

Являются ли эти библиотеки доступными в ванильной Java-установке или мне нужно забрать их из других источников? Я хочу, чтобы не загружать мою систему избыточным материалом.

Когда я пытаюсь запустить скрипт без загрузки этих библиотек, он заканчивается ошибкой, предсказуемо. Вот сообщение об ошибке:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/conn/scheme/SocketFactory 
    at com.wolfram.alpha.net.HttpProviderFactory.getDefaultHttpProvider(HttpProviderFactory.java:18) 
    at com.wolfram.alpha.WAEngine.<init>(WAEngine.java:36) 
    at simpleSample.main(simpleSample.java:58) 
Caused by: java.lang.ClassNotFoundException: org.apache.http.conn.scheme.SocketFactory 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 3 more 

Я использую Eclipse в качестве моей IDE. Я не думаю, что это имеет значение здесь, но это может быть.

+0

@Jens Я согласен, что эта проблема была решена в другом месте. К сожалению, это не похоже на дубликат, как вы его отметили. –

+0

Пожалуйста, посмотрите [здесь] (http://stackoverflow.com/questions/9395207/how-to-include-jar-files-with-java-file-and-compile-in-command-prompt), чтобы получить вас начал. Вы также можете изучить проект Maven для обработки ваших зависимостей. –

+2

«Я пропускаю кучу сон-индуцирующих основ», но теперь эти сна, вызывая основы, дают вам головную боль. Возможно, вам стоит начать с вызова 'java -h' и посмотреть опцию' -classpath'. – SpaceTrucker

ответ

1

@dimplex уже ответил. Это выпуски нескольких проектов Apache. В следующий раз вы встречаете эти проблемы, попробуйте:

Google:

, как:

Первый результат для КАЖДОГО поиска выше находится в нескольких шагах от загружаемой вами страницы.

Maven Central Поиск:

http://search.maven.org

(я не копируя каждую ссылку, просто для поиска имен файлов Jar.)

Это еще более прямой, но я бы порекомендовал путь Google, так как вы можете увидеть страницу проекта.

+0

Я знаю, что смогу google и устанавливать каждый раз, когда сталкиваюсь с проблемой. Если вы прочитаете мой вопрос, вы увидите этот отрывок: «Являются ли эти библиотеки доступными в ванильной Java-установке, или мне нужно искать их из других мест? Я хочу, чтобы не загружать мою систему избыточным материалом». Спасибо за ваши усилия. –

+0

@ n8. Msgstr "Доступны ли эти библиотеки в ванильной Java-установке, или мне нужно найти их в другом месте?". «Это выпуски нескольких проектов Apache» отвечает как «Нет», а остальная часть ответа говорит вам, где это «где-то в другом месте», чтобы «извлечь» их. В чем проблема? –

+0

Проблема в том, что я знаю вещи. Я не знал, что Java не будет включать эти библиотеки, поэтому я спросил, включены ли они. Разумеется, разумно, что Java не обязательно включала бы библиотеки Apache в свою установку на ваниль, но я этого не знаю. Поэтому вместо того, чтобы делать неосведомленные решения, я задаю вопрос. Спасибо, что ответили всесторонне, но мне действительно просто нужно было «нет, вам нужно скачать». –

1

Вам необходимо обновить httpclient.jar до версии 4.1. Как вы можете видеть в javadoc диссертация, предлагаемая к данной версии

+0

Спасибо, я посмотрю. –

1

Это все (старые) библиотеки Apache Software Foundation. Места загрузки заключаются в следующем:

commons-codec-1.3.jar

httpclient-4.0.1.jar

commons-logging.jar

httpcore-4.0.1.jar

+0

В конечном итоге я сделаю это, если придется, но это не касается моего вопроса. У меня уже много библиотек, я не хочу добавлять кучу лишних, если я могу помочь. –

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