【问题标题】:Use 2 versions of same Lib使用相同 Lib 的 2 个版本
【发布时间】:2012-06-19 19:36:57
【问题描述】:

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

事情是这样的:

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

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

【问题讨论】:

    标签: java jar amazon-s3 amazon


    【解决方案1】:

    你不能在同一个类加载器中使用同一个 Lib 的 2 个版本;但是您可以使用不同的类加载器来加载不同的版本。比如可以使用子类加载器加载httpclient-4.0.1,在超类加载器中屏蔽4.1.0。

    【讨论】:

    • .JAR 是否可以仅从我的 jar 中的 jar 运行 httpclient 的代码?
    • 是的,为了使代码更清晰,您可以将所有 HttpClient 调用合并到一个类中(我们称之为 HttpClientHelper);然后创建一个类加载器,它的类路径中有 4.1.1,并使用这个类加载器来加载 HttpClientHelper。如果您需要一些示例代码,请给我您的电子邮件地址。
    猜你喜欢
    • 1970-01-01
    • 2023-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    相关资源
    最近更新 更多