1

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 テスト

スレッド「メイン」での例外 java.lang.NoClassDefFoundError: test 原因: java.lang.ClassNotFoundException: test at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) ) java.net.URLClassLoader.findClass(URLClassLoader.java:205) で java.lang.ClassLoader.loadClass(ClassLoader.java:321) で sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) で java .lang.ClassLoader.loadClass(ClassLoader.java:266) メイン クラスが見つかりませんでした: テスト。プログラムは終了します。

問題はどこだ?他のパッケージが不足していますか?

4

2 に答える 2

4

現在のパスをクラスパスに追加する必要がある場合があります。

Unix / Linux / Macの場合:

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

Windowsの場合:

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

編集 実際には、htmlunit-2.9.jarよりもhtmlunitに必要なjarが多くあります。したがって、必要なすべてのjarがlib /ディレクトリにあることを考慮すると、実際には次を呼び出す必要があります。

Unix / Linux / Macの場合:

java -cp .:lib/* test

シェルからこのコマンドを実行する場合は、シェルの拡張を避けるために、ワイルドカードをエスケープするか(「\」を使用)、クラスパス全体を引用符で囲む必要があります。

Windowsの場合:

java -cp .;lib/* test
于 2012-04-08T16:47:52.033 に答える
0

これは機能します:

java -cp .:lib/* テスト

于 2012-04-08T18:57:57.720 に答える