这是一个普遍的问题。我正在使用2个库 A.jar 和 B.jar ,它们取决于同一jar的不同版本。
假设在运行时我需要 THIS.xxxjar
MY.jar
-> A.jar -> THIS.1.0.0.jar
-> B.jar -> C.jar -> THIS.5.0.0.jar
我可以针对其依赖项编译特定的jar(A.jar / B.jar),但在运行时我只需要加载1个版本。哪一个?
仅加载1个依赖关系(最新版本)意味着,如果库不是向后兼容的,那么我的代码可能会抛出运行时异常(那里有向后兼容的库吗?)。
无论如何,我知道像OSGi这样的东西可以解决此问题。
我想知道解决这种问题的旧方法是什么…
非常感谢
我已经下载了TomEE plume 8.0.0-M2,TomEE plus 8.0.0-M2,TomEE webprofile 8.0.0-M2,TomEE microprofile 8.0.0-M2和OpenEJB Standalone 8.0.0-M2(来自http://tomee.apache.org/download-ng.html) 我已经安装了所有这些TomEE版本,并在解压缩后更改了
问题内容: 当存在具有不同版本的重复JAR时,该行为非常不一致。有人知道JVM如何处理重复项吗? 问题答案: 类加载器按顺序搜索类路径,并使用找到的第一个匹配类。
问题内容: 我已经安装了Java6和7,并使用eclipse编写了一个简单的jdbc应用程序。我在lib文件夹中同时有sqljdbc4.jar和sqljdbc.jar。我收到此消息… 2013年12月18日9:29:51 com.microsoft.sqlserver.jdbc.SQLServerConnection 严重:该驱动程序不支持Java Runtime Environment(JRE)
问题内容: 如何在网络驱动程序中设置Firefox版本?我只想使用其他版本的Firefox。 就像其他版本19、20、21 … 请提供一个通用解决方案,该解决方案也对其他浏览器有所帮助。 问题答案: 您必须在系统上安装所有版本。然后,您可以使用System属性来定义Firefox的路径。请注意,由于路径是通过System属性设置的,因此您将无法在同一Java进程中运行两个不同的Firefox。 此
1.背景 项目里已经引入了bcprov-jdk15on-1.54.jar,并且在很多地方使用. 现在合作方给过来一套新的接入资料,里面有以下jar包. 2.问题 项目中的bcprov-jdk15on存在两个版本,旧的是1.54,新的是1.69. 类似于下面这张图: 由于很多地方用到了1.54版本,所以不能直接升级到1.69. 现在想实现以下两点: 对于本次的新版本,其中的fintech-java-
将以上内容更改为 解决了问题。但是,与其将Scala-XML2.11版本1.0.5排除在scalatest之外,我想强制scala编译器使用Scala-XML2.11版本1.0.5而不是版本1.0.4。(我在https://mvnrepository.com上研究了这些版本。)因此,我尝试将替换为 然而,这导致 [警告]*org.scala-lang:scala-library:(2.11.8,2