例如,
如果我有一个程序 a.jar 依赖于 log4j-1.0.jar,我会制作它并且它在我的机器上运行良好。
后来,我将我的程序复制到另一台机器上,该机器上有 log4j-2.0.jar,与我的程序不兼容。
java 运行时将如何发现它?通过代码中的异常?听起来太可怕了...
谢谢
最佳答案
我遇到过一次这样的场景。是的,如果您在类路径中提供两个不同的 log4j 库版本,Java 运行时将同时发现它们,并且无法保证会选择哪个版本并可能导致异常/错误特别是如果库不向后兼容.
大多数 Java 类加载器不对库的加载顺序提供任何保证,因此您确实需要确保不要在类路径上重复依赖项。
关于java - java程序如何强制执行库版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17849866/