我正在尝试使用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) 找不到主类:测试。程序将退出。
答案 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