如何在java中处理两个jar文件?

时间:2009-09-09 14:52:36

标签: java netbeans classpath jar

我正在使用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文件中的其他类时处理这种情况。

2 个答案:

答案 0 :(得分:5)

只需在编译时将所需的jar文件放在类路径上即可。如果您是从命令行执行此操作,那么它将如下所示:

javac -cp jar1:jar2 my.Application

如果您使用的是NetBeans,那么您需要告诉NetBeans两个JAR都在您的类路径中。它将在 Project>中定义。属性向导 as described here 以及here from the tutorial

答案 1 :(得分:0)

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

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

(Maven在NB6中可用)