Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.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 JMS清单文件,JAR的指定顺序是否重要_Java_Jar_Jms - Fatal编程技术网

Java JMS清单文件,JAR的指定顺序是否重要

Java JMS清单文件,JAR的指定顺序是否重要,java,jar,jms,Java,Jar,Jms,在jar文件的清单中,jar的列出顺序是否重要 前一个罐子是否能够访问后一个罐子。后一个罐子可以访问前一个罐子吗 为了澄清,我指的是清单的Rsrc类路径中引用的两个jar文件 感谢因此,要扩展我的评论,答案仍然是否定的。原因是,除了类路径黑客(我自己做了一两次)之外,Jar和类文件是在代码运行之前由每个类加载器加载的。只有在应用程序中进行了有意义的使用(如访问静态字段或创建实例)时,才会初始化这些类。关键是,类加载器使用其类路径中的条目来确定加载类时要查看的位置。当您尝试使用上述类时,类加载器已

在jar文件的清单中,jar的列出顺序是否重要

前一个罐子是否能够访问后一个罐子。后一个罐子可以访问前一个罐子吗

为了澄清,我指的是清单的Rsrc类路径中引用的两个jar文件


感谢

因此,要扩展我的评论,答案仍然是否定的。原因是,除了类路径黑客(我自己做了一两次)之外,Jar和类文件是在代码运行之前由每个类加载器加载的。只有在应用程序中进行了有意义的使用(如访问静态字段或创建实例)时,才会初始化这些类。关键是,类加载器使用其类路径中的条目来确定加载类时要查看的位置。当您尝试使用上述类时,类加载器已经有了它可以提供给您的类列表


有关类加载的更多信息,请参见我在评论中提供的链接。

是的,这很重要,但不是按照您建议的方式。 甲骨文技术说明(右下方):

规格订单

指定多个类路径项的顺序是 重要的。Java解释器将在 目录在类路径变量中的显示顺序。 在上面的例子中

(他们将类路径设置为
C:\java\MyClasses;C:\java\OtherClasses

Java解释器将首先在目录
C:\Java\MyClasses
中查找所需的类。只有在该目录中找不到具有正确名称的类时,解释器才会在
C:\java\OtherClasses
目录中查找


不,不管顺序如何,类加载器都一样加载它们。-编辑我应该说不,除了重复类,在这种情况下,类加载器找到的第一个实体(不完全确定是否等于类路径中的第一个条目)就是在运行时使用的类。另外,请检查这个:很好的答案。我第一次问一个问题。我点击了复选标记,但它不允许我投票。这将是在重复类和其他不正确的情况下?这意味着,如果您以某种方式为某些API部署了一个包含V1.0类路径条目和V1.1更高版本条目的构建,那么将使用V1.0中的类,而不是V1.1中的类,这正是您想要的!您不必担心依赖性,类加载器会发现这一点,但同一类的不同版本确实很重要。