Как импортировать внешнюю библиотеку по относительному пути в Eclipse? - PullRequest
48 голосов
/ 12 февраля 2011

Я импортировал внешние библиотеки, используя абсолютный путь.Но у меня есть две рабочие среды и переключение между Linux и Windows.проекты загружаются из SVN.Поэтому мне было интересно, могу ли я импортировать эти библиотеки по относительному пути.

Спасибо

Ответы [ 5 ]

48 голосов
/ 13 февраля 2011

Вы должны объявить переменную (Java Build Path -> Add Variable ... -> Configure Variable ... -> New), чтобы установить изменяемый путь в каждой системе (например, FOO_BAR_HOME).

Чем вы можете добавить переменную в библиотеки и отредактировать ее так, чтобы она указала на вашу библиотеку, например

%FOO_BAR_HOME%/lib/foobar.jar

Посмотрите на существующие переменные для использования.

В качестве альтернативы вы можете поместить библиотеку в проект (например, подпапка 'lib'). Если вы добавите библиотеку из этого местоположения («Добавить банки ...», НЕ «Добавить внешние банки ...»), она будет добавлена ​​по относительному пути.

6 голосов
/ 18 ноября 2014

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

Сначала добавьте нужную библиотеку, используя обычный метод «Добавить внешнюю библиотеку / Jar».

Если вы войдете в домашний каталог вашего Java-проекта, вы должны увидеть файл .classpath. Отредактируйте его с помощью любого текстового редактора и найдите строку, которая ссылается на добавленную вами библиотеку. Затем, скажем, ваша библиотека называется lib.jar и у вас есть один уровень за пределами вашего проекта.

Допустим, строка говорит:

<classpathentry kind="lib" path="C:/Users/Public/workspace/lib.jar"/>

Вместо перемещения lib.jar в каталог вашего проекта, вы можете просто изменить эту строку, чтобы сказать:

<classpathentry kind="lib" path="./../lib.jar"/>

и ваш путь сборки Java будет обновлен, чтобы искать его в каталоге на один уровень выше текущего проекта.

Кроме того, насколько мне известно, если вы работаете на Mac или любой другой ОС на базе Unix, файл .classpath будет скрыт. Чтобы получить к нему доступ, вы можете попробовать открыть его из терминала, перейдя в каталог, который использует ваш проект Java (сама папка проекта, а не рабочая область), а затем либо vi, либо vim ".classpath". Имейте в виду, что использование ls или даже ls -a может не сработать, но верьте, что оно будет там.

После того, как вы изменили его в указанное место, сохраните файл, и когда вы вернетесь в затмение, ссылка все равно будет работать. Имейте в виду, что "./" в начале необходимо. Просто "../" не сработает, или, по крайней мере, не сработало для меня.

4 голосов
/ 27 августа 2011

Я сделал это очень просто. У меня была библиотека с абсолютным путем в моем classpath:

/home/glauco/workspace/ltClubs/lib/swingx-core-1.6.2.jar

Так что я просто удалил из него абсолютный путь, и он работает. Теперь это относительно xD:

lib/swingx-core-1.6.2.jar
3 голосов
/ 03 сентября 2014

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

Вы можете использовать относительный путь, но вам не хватает './' в нем.

Вместо

lib/swingx-core-1.6.2.jar

вы должны использовать

./lib/swingx-core-1.6.2.jar
0 голосов
/ 19 августа 2015

Добавьте папку, содержащую зависимости, в проект JAVA.Выберите и щелкните правой кнопкой мыши зависимости, «Add to Build Path» появится в контекстном меню.Это добавляет зависимости, используя относительный путь вместо абсолютного пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...