Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Java EJB应用程序没有';它的LIB没有预定义的相对路径吗?_Java_Ejb_Classpath_Appserver - Fatal编程技术网

为什么Java EJB应用程序没有';它的LIB没有预定义的相对路径吗?

为什么Java EJB应用程序没有';它的LIB没有预定义的相对路径吗?,java,ejb,classpath,appserver,Java,Ejb,Classpath,Appserver,我可以理解,Java中的桌面应用程序没有预定义的jar(库)文件路径。它已经有一个CLASS_PATH env var 但是我不明白为什么EJB模块没有这样的功能。。。(Web应用程序有两个Web-INF/lib以下是Java EE规范的两个摘录: JAR格式文件(如.JAR文件、.war文件或.rar文件)可能 通过命名被引用的.jar文件来引用.jar文件或目录 或引用JAR文件的类路径头中的目录 清单文件。引用的.jar文件或目录使用 相对于引用JAR文件的URL的URL。清单文件 在JA

我可以理解,Java中的桌面应用程序没有预定义的jar(库)文件路径。它已经有一个CLASS_PATH env var


但是我不明白为什么EJB模块没有这样的功能。。。(
Web应用程序有两个Web-INF/lib

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

JAR格式文件(如.JAR文件、.war文件或.rar文件)可能 通过命名被引用的.jar文件来引用.jar文件或目录 或引用JAR文件的类路径头中的目录 清单文件。引用的.jar文件或目录使用 相对于引用JAR文件的URL的URL。清单文件 在JAR文件中名为META-INF/MANIFEST.MF。中的类路径项 清单文件的格式如下

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


因此,我知道默认情况下,
web模块
ear-app
分别具有
web-INF/lib和
lib
dir。但是,
ejb模块
没有。ejb模块在其类路径中拥有ear的lib目录中的每个jar。这些由所有其他EJB模块和web模块共享。如果您只想在一个ejb模块的类路径中放置一个库jar,请使用ejb模块jar的类路径清单来指定此依赖关系。但我认为,如果你把你的答案总结为答案的第一行,然后是摘录和表格规格,会更有帮助。
Class-Path: list-of-jar-files-or-directories-separated-by-spaces