Java 使用相同库的两个版本

Java 使用相同库的两个版本,java,jar,amazon-s3,amazon,Java,Jar,Amazon S3,Amazon,是否可以在不同版本中使用相同的库 问题是: 我将httpclient-4.0.1放入WEB-INF/lib目录中的应用程序中 我为AmazonS3服务制作了一个API,它使用httpclient-4.1.1。但是我不想更新我的应用程序库来使用更新的版本,因为我没有足够的时间来测试和保证应用程序能够正常运行。 那么,有没有一种方法可以让我制作的API(实际上是一个jar)使用httpclient-4.1.1,而无需升级我的应用程序库(4.0.1)?在同一个类加载器中不能使用相同库的两个版本;但是您

是否可以在不同版本中使用相同的库

问题是:

我将httpclient-4.0.1放入WEB-INF/lib目录中的应用程序中

我为AmazonS3服务制作了一个API,它使用httpclient-4.1.1。但是我不想更新我的应用程序库来使用更新的版本,因为我没有足够的时间来测试和保证应用程序能够正常运行。
那么,有没有一种方法可以让我制作的API(实际上是一个jar)使用httpclient-4.1.1,而无需升级我的应用程序库(4.0.1)?

在同一个类加载器中不能使用相同库的两个版本;但是您可以使用不同的类加载器来加载不同的版本。例如,您可以使用一个子类加载器来加载httpclient-4.0.1,并在超级类加载器中加载shield 4.1.0。

可以使用.JAR仅从我的JAR中的JAR运行httpclient的代码吗?是的,为了让代码更清晰,您可以将所有httpclient调用合并到一个类中(我们称之为HttpClientHelper);然后创建一个类加载器,它的类路径中有4.1.1,并使用这个类加载器来加载HttpClientHelper。如果您需要一些示例代码,请给我您的电子邮件地址。