java - java程序如何强制执行库版本?

标签 java jar version

例如,

如果我有一个程序 a.jar 依赖于 log4j-1.0.jar,我会制作它并且它在我的机器上运行良好。

后来,我将我的程序复制到另一台机器上,该机器上有 log4j-2.0.jar,与我的程序不兼容。

java 运行时将如何发现它?通过代码中的异常?听起来太可怕了...

谢谢

最佳答案

我遇到过一次这样的场景。是的,如果您在类路径中提供两个不同的 log4j 库版本,Java 运行时将同时发现它们,并且无法保证会选择哪个版本并可能导致异常/错误特别是如果库不向后兼容.

大多数 Java 类加载器不对库的加载顺序提供任何保证,因此您确实需要确保不要在类路径上重复依赖项。

关于java - java程序如何强制执行库版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17849866/

相关文章:

java - Java中的多线程通信

java - Maven 仅在阴影 Jar 中包含依赖项

java - 按需在 Gradle 中制作 NON-FAT jar

java - 有多少 Microsoft JVM 仍在使用?

java - 我的 Elasticache Redis 节点中的当前连接数不断增加

java - 如何让 hibernate 打印出命名查询有什么问题?

selenium - 哪个 ChromeDriver 版本与哪个 Chrome 浏览器版本兼容?

java - 无法启动 Tomcat 服务器。使用 Java 1.7 编译。使用 JSF 2.0。给出 UnsupportedClassVersionError : com/sun/faces/config/FacesInitializer

java - 如何在eclipse中独立执行包含两个类的程序?

jar 文件中的 javax/mail/MessagingException 但在 Eclipse 中工作的代码相同