次のクラスをコンパイルして実行しようとしています。
import org.dom4j.io.SAXReader;
import org.dom4j.Document;
import org.dom4j.Element;
import java.net.URL;
import java.net.Authenticator;
import java.net.PasswordAuthentication;
import java.util.List;
/**
* Java client program to demonstrate how to access Hudson remote API.
*
* @author Kohsuke Kawaguchi
* @see http://hudson.gotdns.com/wiki/display/HUDSON/Remote+access+API
*/
public class Main {
@SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception {
// every Hudson model object exposes the .../api/xml, but in this example
// we'll just take the root object as an example
URL url = new URL("http://deadlock.netbeans.org/hudson/api/xml");
// if you are calling security-enabled Hudson and
// need to invoke operations and APIs that are protected,
// consult the 'SecuredMain" class
// in this package for an example using HttpClient.
// read it into DOM.
Document dom = new SAXReader().read(url);
// scan through the job list and print its status
for( Element job : (List<Element>)dom.getRootElement().elements("job")) {
//for( Element job : (java.util.List<org.dom4j.Element>)dom.getRootElement().elements("job")) {
System.out.println(String.format("Name:%s\tStatus:%s",
job.elementText("name"), job.elementText("color")));
}
}
}
私はそれを使用してコンパイルします:
javac -cp /usr/share/java/dom4j.jar Main.java
しかし、それを実行しようとすると、例外が発生します。
$ java Main
スレッド「main」の例外java.lang.NoClassDefFoundError:メイン.main(Main.java:31)のorg / dom4j / io / SAXReader原因:java.lang.ClassNotFoundException:java.netのorg.dom4j.io.SAXReader .URLClassLoader $ 1.run(URLClassLoader.java:202)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:190)at java.lang.ClassLoader.loadClass(ClassLoader。 java:306)at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)at java.lang.ClassLoader.loadClass(ClassLoader.java:247)... 1 more
jarファイルを見ると:
jar tvf /usr/share/java/dom4j.jar | grep SAXReader *
1061 Mon Jan 25 09:34:34 EST 2010 org / dom4j / io / SAXReader $ SAXEntityResolver.class 13170 Mon Jan 25 09:34:34 EST 2010 org / dom4j / io / SAXReader.class
'missing'クラスはJARに存在します。これを解決する方法について何かアイデアはありますか?