Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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清单文件';类路径及其确定相对目录的方式_Java_Ant_Classpath - Fatal编程技术网

Java清单文件';类路径及其确定相对目录的方式

Java清单文件';类路径及其确定相对目录的方式,java,ant,classpath,Java,Ant,Classpath,MANIFEST.MF文件中的类路径如何确定相对位置 1) 假设我有一个JAR,JAR在lib/somejar.JAR中,ofc清单文件在META-INF/manifest.MF中。如何设置类路径。。。。?它是类路径:lib/somejar.jar还是。/lib/somejar.jar 2) 假设somejar.jar中还有主jar所依赖的其他jar。当然,somejar.jar也有自己的MANIFEST.MF文件,其中包含正确设置的类路径字段。现在让我们假设原始的主jar文件在运行时需要访问其

MANIFEST.MF文件中的类路径如何确定相对位置

1) 假设我有一个JAR,JAR在
lib/somejar.JAR
中,ofc清单文件在
META-INF/manifest.MF
中。如何设置类路径。。。。?它是
类路径:lib/somejar.jar
还是
。/lib/somejar.jar

2) 假设somejar.jar中还有主jar所依赖的其他jar。当然,somejar.jar也有自己的MANIFEST.MF文件,其中包含正确设置的类路径字段。现在让我们假设原始的主jar文件在运行时需要访问其中一个jar文件,只要somejar.jar位于main.jar的类路径上,它就能够访问这些jar文件吗?或者是因为主jar运行的“somejar.jar”不再是根目录,所以相关目录就乱了

小更新:这一切都将在web环境中运行,在应用服务器上。

当执行“普通”操作时,您不能在JAR中使用JAR。您需要将它放在相对于主JAR的已知路径之外,或者在主JAR中提取JAR的内容

但是自从Eclipse3.5以来,您可以通过一个内置的技巧来实现这一点。选择导出>可运行JAR文件时,请选中第二个库处理选项

当选择将所需库打包到生成的JAR中时,Eclipse将添加一个特殊的类加载器,它将在执行主类之前为您透明地加载这些JAR。它是在……的帮助下做的。

当你做“纯香草”的时候,你不能在罐子里放一个罐子。您需要将它放在相对于主JAR的已知路径之外,或者在主JAR中提取JAR的内容

但是自从Eclipse3.5以来,您可以通过一个内置的技巧来实现这一点。选择导出>可运行JAR文件时,请选中第二个库处理选项


当选择将所需库打包到生成的JAR中时,Eclipse将添加一个特殊的类加载器,它将在执行主类之前为您透明地加载这些JAR。它是在……的帮助下做到这一点的。

这很有趣。从技术上讲,我的产品甚至比罐子里的罐子还要多(main.jar->some.jar->vendorjars…)。现在让我们假设这是在一个应用服务器上,而不是在一个普通的示例中,我不能在一个jar中有一个jar。。。这是否意味着应用服务器正在使用类加载器来加载一些.jar和vendor.jar?不,Eclipse在jar中包含类加载器。JAR将存在于您的代码+第三方JAR+Eclipse代码+特定于Eclipse的MANIFEST.MF中。它可以独立运行。但是如果你不想要一个可运行的JAR(因为你开始谈论appservers,我意识到你不想要(也不能使用)一个可运行的JAR),那么你应该将JAR内容提取到主JAR中(这样原始的JAR类就会在相同的文件夹结构中结束)。绝对不可能将JAR作为一个简单的库放在JAR中,这很有趣。从技术上讲,我的产品甚至比罐子里的罐子还要多(main.jar->some.jar->vendorjars…)。现在让我们假设这是在一个应用服务器上,而不是在一个普通的示例中,我不能在一个jar中有一个jar。。。这是否意味着应用服务器正在使用类加载器来加载一些.jar和vendor.jar?不,Eclipse在jar中包含类加载器。JAR将存在于您的代码+第三方JAR+Eclipse代码+特定于Eclipse的MANIFEST.MF中。它可以独立运行。但是如果你不想要一个可运行的JAR(因为你开始谈论appservers,我意识到你不想要(也不能使用)一个可运行的JAR),那么你应该将JAR内容提取到主JAR中(这样原始的JAR类就会在相同的文件夹结构中结束)。绝对不可能将JAR作为一个简单的库放在JAR中。