Затмение helios: проект tomcat - jar не будет экспортироваться или публиковаться. Время выполнения ClassNotFoundExceptions может привести
Я использую Eclipse Helios, и мне было интересно, как я могу добавить проект библиотеки в мою папку, которая будет скопирована в каталог сборки, где находится мой скомпилированный проект.
В настоящее время я сделал следующее:
- создал каталог lib в корне моего проекта
- скопировал соответствующие банки в этот каталог
- Мой Проект -> Свойства -> Путь сборки Java -> Добавить банки, и я добавил все банки из этого каталога.
После добавления всех банок я получил следующее предупреждение относительно каждого из файлов jar:
jar will not be exported or published. runtime ClassNotFoundExceptions may result
Прежде всего, как я могу добавить каталог банок вместо отдельных банок? и второй вопрос: как я могу сделать так, чтобы библиотеки были правильно развернуты при компиляции моего приложения?!
3 ответа
Это может быть о:
- простая проблема обновления:
Можете ли вы переключиться в представление навигатора, щелкнуть правой кнопкой мыши обновить проект, убедитесь, что он не находится в
LIB
реж,
Затем попробуйте перетащить банку вlib
DIR и посмотреть, если это появляется.
- проблема процесса (из этой записи в кэше, оригинальная запись недоступна):
Когда вы полностью контролируете свой веб-контейнер / сервер приложений, развертывание файлов JAR так же просто, как удаление папки в общей папке lib.
Если вы не упаковываете свои веб-приложения какwar
файл, то это еще проще, потому что вам нужно всего лишь опустить банки вWEB-INF/lib
папка вашего веб-приложения.
Но если у вас нет полного контроля над вашим веб-сервером или сервером приложений, ваш единственный выбор - упаковать файлы jar, которые вы использовали в вашем файле войны.При разработке веб-проекта с использованием моей недавно разработанной утилиты (файл JAR) я столкнулся с
NoClassDefFound
ошибка. Конечно, совершенно очевидно, что файл jar, который я создал и использовал в своем веб-проекте, не был найден (не виден вCLASSPATH
).
Добавление файла jar к пути сборки только устраняет проблему компиляции. Перетаскивание файла jar в папку lib моего рабочего пространства Eclipse - не очень хорошая идея.
Мне понадобилось несколько часов, прежде чем я нашел решение:
- Щелкните правой кнопкой мыши по вашему веб-проекту.
- Нажмите Свойства
- Выберите зависимости модуля J2EE
- Нажмите вкладку веб-библиотек
- Добавьте внешние баночки (если баночка находится за пределами вашего проекта). Запись будет добавлена в
Jar/Module
Убедитесь, что вы нажимаете на флажок (проверено).И все должно быть хорошо. Я попытался экспортировать в файл войны, а затем проверил содержимое, и мои файлы JAR действительно были развернуты вместе с войной.
- проблема конфигурации проекта
ОП ufk упоминает в комментарии:
Я решил проблему:
- добавление библиотеки "Библиотеки веб-приложений" в "путь сборки Java" и
- добавив все соответствующие банки в
WebContent/WEB-INF/lib
В затмении Юну:
в веб-проекте, после добавления jar для построения пути, нужно добавить его в
Deployment Assembly
(в свойствах проекта)
при добавлении этой банки в "Deployment Assembly" нажмите кнопку добавления и выберите
Java Build Path Entry
(а не другое рабочее пространство или опция файловой системы)
Я столкнулся с той же проблемой: когда я экспортирую свое веб-приложение в виде файла war, внешние добавленные файлы JAR не включаются в каталог app / lib, что вызывает исключения во время развертывания.
Вы должны переключить представление навигатора, щелкнуть правой кнопкой мыши обновить проект, убедитесь, что он не находится в каталоге LIB (но в папке проекта)
затем попробуйте перетащить JAR в каталог lib и посмотреть, появится ли он.