HtmlUnit的第一步

时间:2012-04-08 16:43:24

标签: java classpath htmlunit noclassdeffounderror

我正在尝试使用HtmlUnit设置我的第一个示例程序。这是代码:

import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.WebClient;


public class test {

public static void main(String[] args) throws Exception {

    WebClient client = new WebClient();
    HtmlPage currentPage = client.getPage("http://www.oddsportal.com/matches/soccer");
    client.waitForBackgroundJavaScript(10000);
    String textSource = currentPage.asXml();
    System.out.println(textSource);

}

}

然后我编译:

  

javac -cp lib / htmlunit-2.9.jar test.java

但是当我尝试执行测试时我得到了

  

java -cp lib / htmlunit-2.9.jar test

     

线程“main”中的异常java.lang.NoClassDefFoundError:test   引起:java.lang.ClassNotFoundException:test       在java.net.URLClassLoader $ 1.run(URLClassLoader.java:217)       at java.security.AccessController.doPrivileged(Native Method)       在java.net.URLClassLoader.findClass(URLClassLoader.java:205)       at java.lang.ClassLoader.loadClass(ClassLoader.java:321)       在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:294)       at java.lang.ClassLoader.loadClass(ClassLoader.java:266)   找不到主类:测试。程序将退出。

问题在哪里?我缺少其他一些套餐?

2 个答案:

答案 0 :(得分:4)

您可能必须将当前路径添加到类路径中。

在Unix / Linux / Mac上:

java -cp .:lib/htmlunit-2.9.jar test

在Windows上:

java -cp .;lib/htmlunit-2.9.jar test

修改 htmlunit实际上需要更多的罐子,只需要htmlunit-2.9.jar。因此,考虑到所有必需的jar都位于lib /目录中,您实际上应该调用以下内容:

在Unix / Linux / Mac上:

java -cp .:lib/* test

如果从shell运行此命令,则还需要转义通配符(带有'\')或将整个类路径放在引号内以避免shell扩展。

在Windows上:

java -cp .;lib/* test

答案 1 :(得分:0)

这有效:

  

java -cp。:lib / * test