Почему приложения Java EJB не имеют заранее определенного относительного пути для его библиотек?

Я мог понять это Desktop приложения на Java не имеют pre-defined относительный путь для включения jar (библиотеки) файлов. У него уже есть переменная CLASS_PATH.

Но что я не мог понять, почему модули EJB не имеют такой функции... (Web App has!- throw WEB-INF/lib)

1 ответ

Решение

Вот две выдержки из спецификации Java EE:

Файл формата JAR (такой как файл.jar, файл.war или файл.rar) может ссылаться на файл или каталог.jar, называя указанный файл или каталог.jar в заголовке Class-Path в манифесте ссылающегося файла JAR. файл. Упомянутый файл или каталог.jar именуется с использованием URL-адреса относительно URL-адреса ссылочного файла JAR. Файл манифеста называется META-INF/MANIFEST.MF в файле JAR. Запись Class-Path в файле Manifest имеет вид

Class-Path: list-of-jar-files-or-directories-separated-by-spaces

Файл.ear может содержать каталог, содержащий библиотеки, упакованные в файлы JAR. Элемент library-directory в дескрипторе развертывания файла.ear содержит имя этого каталога. Если элемент library-directory не указан или файл.ear не содержит дескриптор развертывания, используется каталог с именем lib. Пустой элемент library-directory может использоваться, чтобы указать, что нет никакого каталога библиотеки. Все файлы в этом каталоге (но не подкаталоги) с расширением.jar должны быть доступны для всех компонентов, упакованных в файл EAR, включая клиенты приложений. Эти библиотеки могут ссылаться на другие библиотеки, либо связанные с приложением, либо установленные отдельно, с использованием любого из методов, описанных здесь.

Другие вопросы по тегам