【问题标题】:How to handle two jar files in java?如何在java中处理两个jar文件?
【发布时间】:2010-11-26 21:05:45
【问题描述】:

我正在将 Netbeans IDE 用于 java 项目。在这个项目中,我需要一个 jar 文件“htmlunit-2.6.jar”。

我已将此 jar 文件包含在项目库文件夹中。我已经实例化了它的一个类“WebClient”,但是这个类需要其他类的“commons-httpclient-3.1.jar”文件。

现在我还在项目库文件夹中包含“commons-httpclient-3.1.jar”文件。但是当我编译我的源文件时,它会抛出

ClassNotFoundException: org.apache.commons.httpclient.auth.CredentialsProvider

当一个 jar 文件中的一个类需要另一个 jar 文件中的其他类时,请告诉我如何处理这种情况。

【问题讨论】:

  • @Yatendra - 你不接受你的问题的答案被认为是不好的形式。将来,这里的人不会向像您这样接受率为 0% 的用户发布答案。请回到您的旧问题并接受一些答案。

标签: java netbeans classpath jar


【解决方案1】:

只需在编译时将所需的 jar 文件放在类路径中,它就可以工作了。如果你是从命令行执行的,那么它看起来像这样:

javac -cp jar1:jar2 my.Application

如果您使用NetBeans,那么您需要告诉NetBeans 这两个JAR 都在您的类路径中。它可以在 Project > Properties 向导 as described herehere from the tutorial

中定义

【讨论】:

    【解决方案2】:

    ClassNotFoundException 告诉您,您的库有一些在运行时没有包含在类路径中的依赖项。您的来源是好的,因为如果您使用了一些不可用的东西,NB 会在编译时(或在编辑之前)告诉您这一点。

    所以,欢迎来到 Java 的“dependency hell”。对于小型项目,您将能够使用自述文件、文档等手动检查所有依赖项,并将它们放入项目配置中,如 oxbow_lakes 所说。对于更大的事情,请查看maven。它会为你做(大部分)一切!

    (Maven 在 NB6 中可用)

    【讨论】:

    • 不向类路径添加 一个 JAR 并不是 相当“依赖地狱”!
    • 据我了解,他此时正在谈论 2 个罐子,但程序无法运行。谁知道有多少 jars 需要运行版本...
    • 是的,我明白了。 2 罐 - 这是狗年的两倍,这意味着 2147483647% 更糟
    猜你喜欢
    • 1970-01-01
    • 2021-03-24
    • 1970-01-01
    • 2016-09-27
    • 1970-01-01
    • 2015-10-26
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多