Java NoClassDefFoundError Htmlunit
我是新手。我尝试了一个使用htmlunit加载网页的简单代码,并使用xpath获取特定的div标记。 xpath是正确的。我已经使用控制台进行了验证 到目前为止我尝试的代码是Java NoClassDefFoundError Htmlunit,java,htmlunit,Java,Htmlunit,我是新手。我尝试了一个使用htmlunit加载网页的简单代码,并使用xpath获取特定的div标记。 xpath是正确的。我已经使用控制台进行了验证 到目前为止我尝试的代码是 import java.util.List; import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htmlunit.html.HtmlElement; import com.gargoylesoftware.htmluni
import java.util.List;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
public class Test {
public static void main(String s[]) throws Exception
{
WebClient client = new WebClient();
HtmlPage page = client.getPage("http://jpu1.pv.sv.nextag.com/serv/iinedan/buyer/outPdir.jsp?search=camera");
List<?> items = page.getByXPath("//div[contains(@class,'search-result-cards')]//div[contains(@class,'listContainer')]");
for(HtmlElement item : (List<HtmlElement>)items)
{
List<?> imageContainer;
imageContainer = item.getByXPath("//div[contains(@class,'imageContainer')]/a");
System.out.println("Image container data length : "+imageContainer.size());
System.out.println("Image "+imageContainer.toString());
}
}
}
这似乎是一个配置问题。我从网站下载了jar,并将其添加到我的引用库中。我使用的IDE是eclipse。HtmlUnit版本是HtmlUnit所依赖的xml-API-1.4.01.jar库中的org/w3c/dom/ElementTraversal。因此,作为一种解决方案,您需要将这个jar放在项目的类路径中 然而,这取决于库的数量。在解决了当前错误之后,可能会出现另一个类的noClassDefFoundError 为了方便地解决这个问题,开始使用Maven
<dependencies>
<dependency>
<groupId>net.sourceforge.htmlunit</groupId>
<artifactId>htmlunit</artifactId>
<version>2.13</version>
</dependency>
</dependencies>
net.sourceforge.htmlunit
htmlunit
2.13
Maven将确保任何库的所有可传递依赖项都可用,并自动将它们保留在项目类路径中(如果在IDE中) 许多jar包包括
org.w3c.dom.ElementTraversal
例如
xmlapi
,batikext
,jython
我认为jar包冲突可能会导致您的问题。
您能提供更多jar包版本的详细信息吗?请更新到
2.26
thank you@shinchan,这是因为我直接创建了一个普通的java项目并手动添加了jar。这是一个依赖性的问题。对我来说,Maven没有遮掩它。。。如何修复?你的意思是,依赖项不在最终构建的工件文件夹中吗?
<dependencies>
<dependency>
<groupId>net.sourceforge.htmlunit</groupId>
<artifactId>htmlunit</artifactId>
<version>2.13</version>
</dependency>
</dependencies>