0

我可以理解DesktopJava 中的应用程序没有包含 jar(库)文件的pre-defined 相对路径。它已经有一个 CLASS_PATH 环境变量。

但是我不明白为什么 EJB 模块没有这样的功能......(Web App has!- throw WEB-INF/lib

4

1 回答 1

1

以下是 Java EE 规范的两个摘录:

JAR 格式文件(例如 .jar 文件、.war 文件或 .rar 文件)可以通过在引用 JAR 文件的 Manifest 中的 Class-Path 标头中命名所引用的 .jar 文件或目录来引用 .jar 文件或目录文件。引用的 .jar 文件或目录使用相对于引用 JAR 文件的 URL 的 URL 命名。清单文件在 JAR 文件中被命名为 META-INF/MANIFEST.MF。Manifest 文件中的 Class-Path 条目的形式为

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

.ear 文件可能包含一个目录,该目录包含打包在 JAR 文件中的库。.ear 文件的部署描述符的 library-directory 元素包含此目录的名称。如果未指定 library-directory 元素,或者 .ear 文件不包含部署描述符,则使用名为 lib 的目录。空的 library-directory 元素可用于指定没有库目录。此目录(但不是子目录)中带有 .jar 扩展名的所有文件都必须可供打包在 EAR 文件中的所有组件使用,包括应用程序客户端。这些库可以使用本文描述的任何技术引用与应用程序捆绑或单独安装的其他库。

于 2012-06-27T10:58:28.880 回答