Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.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
如果JAR在类路径中包含相同的类但不同的JRE版本,Java如何知道在运行时使用哪个类?_Java_Java 8_Jdk1.7 - Fatal编程技术网

如果JAR在类路径中包含相同的类但不同的JRE版本,Java如何知道在运行时使用哪个类?

如果JAR在类路径中包含相同的类但不同的JRE版本,Java如何知道在运行时使用哪个类?,java,java-8,jdk1.7,Java,Java 8,Jdk1.7,我的项目在类路径中包含两个jar(xyz-jre7.jar和xyz-jre8.jar),它们包含具有相同名称的类。在运行时,我的程序似乎使用JRE7和JRE8选择了正确的jar和类。在内部,Java如何知道使用哪个类?这些检查是在哪个文件中进行的?以不确定的顺序从jar文件中加载默认类。如果有两个或多个类具有相同的完全限定名,则加载的第一个类将获胜 应用服务器通常有自定义类加载器这些是maven项目吗?因为您可以在它们中定义java版本。因为它们具有相同的工件ID,所以我需要将它们作为文件集的一

我的项目在类路径中包含两个jar(xyz-jre7.jar和xyz-jre8.jar),它们包含具有相同名称的类。在运行时,我的程序似乎使用JRE7和JRE8选择了正确的jar和类。在内部,Java如何知道使用哪个类?这些检查是在哪个文件中进行的?

以不确定的顺序从jar文件中加载默认类。如果有两个或多个类具有相同的完全限定名,则加载的第一个类将获胜


应用服务器通常有自定义类加载器

这些是
maven
项目吗?因为您可以在它们中定义java版本。因为它们具有相同的工件ID,所以我需要将它们作为文件集的一部分包含进来。如果我尝试正常地包含它们(pom.xml),那么最接近依赖树的一个会被提取出来,但这不是这里的问题。问题是,当两个JAR都包含在JAR中时,Java如何知道使用哪一个JAR呢?你如何执行你的应用程序?我有一个问题。为什么?其中只有一个会被使用,“字母顺序”?我认为那是不对的。你能把它记录下来吗?你是对的,Tomcat过去是按字母顺序排列的。有一些文档的链接还是不错的。