затмение helios: проект tomcat - jar не будет экспортирован или опубликован. Время выполнения ClassNotFoundExceptions может привести - PullRequest
6 голосов
/ 23 ноября 2010

Я использую Eclipse Helios, и мне было интересно, как я могу добавить проект библиотеки в свою папку, которая будет скопирована в каталог сборки, где находится мой скомпилированный проект.

В настоящее время я сделал следующее:

  1. создал каталог lib в корне моего проекта
  2. скопировал соответствующие jar-файлы в этот каталог
  3. Мой проект -> свойства -> Путь сборки Java -> добавитьjars и я добавили все jar из этого каталога.

после добавления всех jar я получил следующее предупреждение относительно каждого файла jar:

jar will not be exported or published. runtime ClassNotFoundExceptions may result

прежде всего какя могу добавить каталог банок вместо отдельных банок?и второй вопрос: как я могу сделать так, чтобы библиотеки были правильно развернуты при компиляции моего приложения?!

Ответы [ 3 ]

10 голосов
/ 22 октября 2013

В eclipse Junu:

в веб-проекте, после добавления jar к пути сборки, необходимо добавить его в

Deployment Assembly

(в свойствах проекта)

при добавлении этого фляги в «Deployment Assembly» нажмите кнопку добавления и выберите

Java Build Path Entry

(а не другое рабочее пространство или параметр файловой системы)

5 голосов
/ 23 ноября 2010

Это может быть около:

Можете ли вы переключиться в представление навигатора, щелкнуть правой кнопкой мыши обновить проект, убедитесь, что он не находится в LIB dir,
Затем попробуйте перетащить JAR в каталог lib и посмотреть, появится ли он.

Когда вы полностью контролируете свой веб-контейнер / сервер приложений, развертывание файлов JAR так же просто, как удаление папки в общей папке lib.
Если вы не упакуете свои веб-приложения в файл war, это будет еще проще, потому что вам нужно всего лишь удалить банки в папке WEB-INF/lib вашего веб-приложения.
Но если у вас нет полного контроля над вашим веб-сервером или сервером приложений, ваш единственный выбор - упаковать файлы jar, которые вы использовали в вашем файле войны.

При разработке веб-проекта с использованием моей недавно разработанной утилиты (файл jar) я обнаружил ошибку NoClassDefFound. Конечно, совершенно очевидно, что файл jar, который я создал и использовал в своем веб-проекте, не может быть найден (не отображается в CLASSPATH).
Добавление файла jar к пути сборки только устраняет проблему компиляции. Перетаскивание файла jar в папку lib моего рабочего пространства Eclipse не очень хорошая идея.
Мне понадобилось несколько часов, прежде чем я нашел решение:

  1. Щелкните правой кнопкой мыши по вашему веб-проекту
  2. Нажмите Свойства
  3. Выбор зависимостей модуля J2EE
  4. Перейдите на вкладку веб-библиотек.
  5. Добавить внешние баночки (если баночка находится за пределами вашего проекта). Запись будет добавлена ​​в Jar/Module, убедитесь, что вы установили флажок (отмечен).

И все должно быть хорошо. Я попытался экспортировать в файл войны, а затем проверил содержимое, и мои файлы JAR действительно были развернуты вместе с войной.

  • проблема конфигурации проекта

ОП уфк упоминает в комментарии:

Я решил проблему:

  • добавление библиотеки «Библиотеки веб-приложений» в «пути сборки java» и
  • добавление всех соответствующих банок в WebContent/WEB-INF/lib
0 голосов
/ 12 января 2014

Я столкнулся с той же проблемой, как и всякий раз, когда я экспортирую свое веб-приложение в виде файла war, внешние добавленные файлы JAR не включаются в каталог app / lib, что вызывает исключения во время развертывания.

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

затем попробуйте перетащить JAR в каталог lib и посмотреть, появится ли он.

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