2014-11-12 3 views
1

К предисловию: Да, я действительно прочитал this. Я попробовал, и это не удалось из-за причин, которые я объясню ниже. Это не дубликат по той единственной причине, что связанный с этим вопрос составляет более трех лет, и, очевидно, с тех пор Eclispe изменился, и то, что когда-то работало, больше не работает.Как добавить библиотеку в переносимое Eclipse?

TL; DR: Я пробовал, и это не сработало. Что еще я могу сделать?

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

Я работаю над проектом, где вместо использования Date и Calendar Java-встроенных модулей, я хочу использовать Joda-time. Я слышал много замечательных вещей об этом, и, по моему собственному опыту, это кажется очень приятным. Однако, поскольку я студент, я хочу работать над этим как в школе, так и дома, а это значит, что мне нужно сделать ее переносной. Опять же, потому что я студент, я не могу установить Java 8 и использовать их новые встроенные классы, которые делают то же самое. Поэтому мне нужен способ портативной установки библиотеки.

Однако, когда я сменил компьютеры, буква диска изменилась, и поэтому просто добавление его в качестве внешней банки на флеш-накопитель не будет работать. Я попытался добавить его как обычную банку, как это было предложено в предыдущем вопросе, но это не удалось, потому что хотя моя папка libs находится в том же каталоге, что и папка src, как она говорит, она не отображается в меню.

Add JARs menu http://i60.tinypic.com/2u6ijqf.pngAdd JARs... меню

File structure http://i60.tinypic.com/xenypw.png Моя файловая структура (библиотека находится внутри joda-time-2.5)

Далее я попытался вручную редактировать файл .CLASSPATH. Я немного тестировал, чтобы посмотреть, как это работает, а затем попытался изменить абсолютный путь на относительный. Однако это все еще не удалось, так как когда я сменил компьютеры, он сказал, что не может найти библиотеку, хотя относительные пути не изменяются. Чтобы уточнить, я изменил эквивалент этого:

<classpathentry kind="lib" path="F:/.../ProjOrg/libs/joda-time-2.5/joda-time-2.5.jar"/> 

к этому:

<classpathentry kind="lib" path="libs/joda-time-2.5/joda-time-2.5.jar"/> 

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

Есть ли способ импортировать или иным образом связывать библиотеку времени Joda с моим портативным Eclipse, поэтому мне не нужно ничего делать, когда я перемещаю ПК? Кроме того, есть ли способ, которым я могу получить Java 8 на своем флеш-накопителе, поэтому мне не нужно беспокоиться об этом?

+0

Ответ на связанный вопрос правильный и работает определенно. Вы, должно быть, делаете что-то неправильно. Если вы нажмете «Добавить JARs ...» на вкладке «Java Build Path» => 'Libraries', вы сможете выбрать любой файл внутри вашего проекта. –

+0

@ AndréStannek Нет, я не делаю ничего плохого. Я могу вам это гарантировать. Я нажимаю «Добавить JARs ...», и он показывает диалог, в котором отображаются только определенные файлы и папки. Я опубликую скриншот, как только GIMP завершит загрузку в качестве доказательства. –

+0

Пожалуйста, разместите снимок экрана о структуре вашего проекта, в котором показано, где вы помещаете файл jar. –

ответ

1

Как обсуждалось в комментариях, проекту необходимо обновить.

Если вы копируете файлы в свой проект и используете внешний браузер файлов, Eclipse не видит эти новые файлы автоматически. Следует помнить об этом. Простое обновление часто решает, казалось бы, необъяснимые ошибки в отношении недостающих файлов. Бывает со мной много.

Я бы предположил, что диалог «Добавить JARs ...» читается непосредственно из файловой системы, но, похоже, он использует содержимое проекта, известное в рабочей области того времени.

1

Вы должны создать некоторые переменные объявить ROOT вашего пути, а затем добавить этот ROOT к относительному пути, где библиотека может быть найдена.Например:

<classpathentry kind="var" path="*ROOT*/.../yourlibrary.jar" /> 

Чтобы создать переменную, вы должны пойти в Java ->Сложение Путь ->Classpath Переменные, и вы должны определить что ROOT есть. Очевидно, ROOT - это часть, которая изменяется по местоположению.

UPDATE:

В ответ на комментарий добавлен в ОП, я не уверен, что вы просите выполнимо за пределами создания какой-то сценарий установки сортировки. Вы можете проверить файл .classpath в вашем репозитории CM, как и любой другой файл проекта, чтобы каждый разработчик получал то же самое .classpath.

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

Я думаю, что я сделал что-то подобное (хотя и не как ограничительные), где мы создали переменную окружения eclipse_home, а затем при условии простой установки (пакетный файл) для установки Eclipse, с некоторыми плагинами. Вы можете иметь основную копию установки Eclipse в zip-файле с файлом JAR в ней, и вы можете запустить скрипт для установки этой переменной среды и разархивировать Eclipse в том же месте для всех пользователей.

+0

Спасибо за ответ, но я просил о том, чтобы не требовать, чтобы я что-то менял для каждого компьютера. Хотя это полезно и интересно, это не то, что я искал. Я собираюсь разъяснить это в вопросе. –

+0

... Похоже, я прояснил ситуацию. Я знаю, где файл будет заканчиваться по отношению к проекту - на самом деле, за исключением буквы диска, абсолютный путь остается неизменным. Виноват. –

+0

Я думаю, что ответ будет по-прежнему остальным: вам понадобится какой-то скрипт, чтобы делать то, что вы хотите. – hfontanez

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