当前位置: 首页 > 面试题库 >

如果我们将两个不同版本的jar文件放在classpath中会发生什么?[关闭]

秦安宁
2023-03-14
问题内容

如果我将两个不同版本的jar文件放在类路径中,会发生什么? 例如: log4j1.4.jar and log4j1.5.jar保存在classpath中
会发生什么?


问题答案:

尽管我也建议不要这样做,但我仍然想尝试回答您的原始问题:

Java具有类加载器层次结构,因此,如果两个JAR都处于层次结构的不同级别,则类加载器将定义其优先级。最受欢迎的示例是Web应用程序类加载器层次结构(例如Tomcat),其中应用程序类的优先级高于容器类的优先级(如果两者均适用)。

如果两个JAR都在同一个类加载器(相同级别)中,则文件系统将确定顺序,从开发人员的角度来看这是不可靠的,因此应将其视为随机的。仅加载一个,但您不知道加载哪个,甚至可能不会从依赖关系问题中得到错误。如果遇到依赖关系问题,则可能是java.lang.Errors,例如VerifyError,NoClassDefFoundError,NoSuchMethodError。



 类似资料:
  • 我正在处理xml,我需要每条记录发送一条消息,当我收到最后一条记录时,我关闭了kafka生产者,这里的问题是kafka生产者的发送方法是异步的,因此,有时当我关闭生产者时,它会拖曳我在某个地方读到过,我可以让制片人敞开心扉。我的问题是:这意味着什么,或者是否有更好的解决方案。 -编辑- 想象以下场景: 我们阅读标签并创建kafka生产者 对于每个元素,我们读取其属性,生成一个json对象并使用se

  • 据我所知,两个不相等的对象可以具有相同的哈希代码。当添加或从HashMap java中检索时,将如何处理这个问题?

  • 问题内容: 在具有并发访问的程序中使用映射时,是否需要在函数中使用互斥体来 读取 值? 问题答案: 读者众多,没有作家可以: https://groups.google.com/d/msg/golang- nuts/HpLWnGTp-n8/hyUYmnWJqiQJ 一个作家,没有读者是可以的。(否则,地图不会太好。) 否则,如果至少有一个作家,而作家或读者至少还有一个,那么 所有 读者 和 作家都

  • 问题内容: 操作系统是否正确处理? 还是我必须打电话给flock()? 问题答案: 虽然OS不会崩溃,并且文件系统不会被破坏,呼叫被 不 保证的广告是原子的,除非有问题的文件描述符是一个管道,数据的写入量字节或更少。标准的相关部分: 尝试写入管道或FIFO具有几个主要特征: * 原子/非原子:如果一个操作中写入的总量未与任何其他进程的数据交错,则写入是原子的。当有多个作者将数据发送到单个读者时,此

  • 问题内容: 我知道对于经验丰富的编码人员来说,这可能是一个愚蠢的问题。但是我有一个库(http客户端),我的项目中使用的其他一些框架/jar也需要。但它们都需要不同的主要版本,例如: 类加载器是否足够智能以某种方式将它们分开?很有可能不是吗?万一所有三个jar中的Class都相同,Classloader如何处理这个问题。加载哪一个?为什么? Classloader是仅拾取一个jar还是将其任意混合

  • 假设我有32 GB的RAM,我通过指定-xmx2048m为我的java进程分配了2GB。但实际上我的进程通常只消耗1GB的堆。那么分配的剩余1GB内存会发生什么呢?剩余的RAM总量是30 GB还是31 GB?