Почему компилятор Java не загружает импортированные пакеты? - PullRequest
0 голосов
/ 23 февраля 2011

Я пытаюсь запустить приложение Lucene Java на моей локальной машине.Я получаю эту ошибку компиляции:

package org.apache.commons.digester does not exist

из-за

import org.apache.commons.digester.Digester;

Разве компилятор не загружает пакет из Интернета?Если нет, что мне делать?

Ответы [ 4 ]

4 голосов
/ 23 февраля 2011

Нет, компилятор не загружает пакеты из Интернета. Некоторые инструменты управления сборкой, такие как Maven , делают это, если вы правильно настроили их и добавили пакет в зависимости проекта. Но без такого инструмента вы должны скачать jar вручную и поместить его в путь к классам компилятора.

1 голос
/ 23 февраля 2011

Если вы используете Maven, вы можете загрузить библиотеку, добавив следующую зависимость:

<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>2.1</version>

В противном случае вы должны загрузить его здесь . Затем просто добавьте .jar к вашему Buildpath.

0 голосов
/ 23 февраля 2011

Нет, компилятор не загружает пакеты из интернета при их импорте. Соглашение об именовании для пакетов делает их похожими на URL, но они не , и компилятор, конечно, не пытается загружать зависимости.

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

Некоторые инструменты сборки, такие как Maven , имеют сложные и относительно простые в использовании механизмы управления зависимостями. Популярный инструмент сборки Ant также имеет такую ​​возможность благодаря Менеджер зависимостей Ivy.

0 голосов
/ 23 февраля 2011

Если вы используете maven и добавили его в качестве зависимости, он загрузит его для вас.в противном случае

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

...