2009-04-16 4 views
0

私はrcpのEclipseプラグインを開発していたと私はNoClassDefFoundErrorがに実行していないクラスはまだ

 
Exception in thread "Thread-7" java.lang.NoClassDefFoundError: org/jdom/input/SAXBuilder 
    at org.geonames.WebService.search(WebService.java:783) 
    at geo.GeocoderGeonames$SearchThread.run(GeocoderGeonames.java:119) 
Caused by: java.lang.ClassNotFoundException: org.jdom.input.SAXBuilder 
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:483) 
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:399) 
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:387) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClassInternal(Unknown Source) 
    ... 2 more 

おそらく見つけることができないクラスは、私が追加した瓶にありビルドパス。実行中のアプリケーションは、このクラスが必要とされているコードを入力したとき、私は

がどのように実行している私は瓶

答えて

1

thisを読んだあと、問題を解決したMANIFEST.MFにjarファイルを追加しました。 私が理解しているように、eclipseはいくつかのクラスローダーを起動し、MANIFEST.MFが表示するようにMANIFEST.MFに指示し、ビルドパスを入力します。

0

を追加する必要があるいくつかの他の場所がある...などあらゆるコンパイルエラーのみ、この例外を得ることはありませんあなたのプラグインは? VM引数のクラスパスにJARを追加する必要があるかもしれません。

+0

Eclipseアプリケーションとして実行しています... – jau

0

私たちの経験では、NoClassDefFoundErrorは、クラスが見つからない場合に通常スローされるClassNotFoundExceptionもあるので、クラスの複数のバージョンが見つかったことを意味することがあります。

あなたのケース(XMLパーサー)の別の理由は、承認されたクラスのものかもしれません。 jdomクラスやorg.w3c ...のようなものを直接インポートしていますか?もしそうなら、ちょうど私が最近出会ったJavaの「承認されたクラス」システムを見てください。

+0

NoClassDefFoundErrorがスローされます。コンパイルされたコードとは、クラスパスにないクラスを指します。 ClassNotFoundExceptionは、リフレクションを使用してクラスをインスタンス化しようとしたときに、指定されたクラスを見つけることができない場合にスローされます。 – akf

関連する問題