2
1
最简单的方法是在代码中使用适配器(适用于您支持的每个版本的包)。 如果库的版本与旧版本兼容,则可以针对最新版本进行编译(这是JDBC驱动程序的工作方式,需要使用相同的驱动程序JAR支持JDBC版本2、3和4),但如果不兼容,则必须单独编译这些适配器包(针对库的版本)。第二种方法也更安全。 然后可以将二进制文件合并在一起。您的工厂将确保只运行正确的代码。 然后,您将有一个工厂来确定要使用哪个版本的库(通过某种方式探测它,或者必须用户显式地配置它),并实例化适当的适配器。 更新 :上面假设您想要生成一个可以与另一个JAR文件的不同版本一起使用的JAR文件,但是在运行时(在给定的安装中),第三方库只有一个固定版本。如果您需要在同一个JVM中支持同一类的多个版本,那么您真的需要看看OSGi。 |
3
0
如果需要在运行时加载多个版本,另一个解决方案是使用父级上一次委托使用自己的类加载器加载类。你将不得不为此编写自己的类加载器,你可以通过谷歌搜索“父级最后一个类加载器”来找到一些例子。 |