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