2011-02-07 5 views
1

プロジェクトの参照ライブラリにあるjarファイルからインポートしたクラスを使用しようとしています。Eclipse RunTime NoClassDefFoundError

私は、参照されたライブラリにpydev.jarファイルを持つプロジェクトを持っています。 Pydev.jarにはorg.python.pydev.navigator.elements.PythonNodeがあり、これをJavaファイルの1つにインポートしました。 Eclipseを使用してプロジェクトをEclipseアプリケーションとして実行すると、java.lang.NoClassDefFoundError:org/python/pydev/navigator/elements/PythonNode例外がスローされます。

コードは以下のようにPythonNodeにISelectionをキャストしようとしている:

IStructuredSelection sel = (IStructuredSelection) 
           window.getSelectionService().getSelection(); 

ArrayList<String> testNames = new ArrayList<String>(); 
Iterator<?> itr = sel.iterator(); 

String testName = ""; 
String testSuite = ""; 

while(itr.hasNext()) { 
    PythonNode selectionElement = (PythonNode) itr.next(); 

    testName = selectionElement.toString(); 
    testSuite = selectionElement.pythonFile.toString(); 

    testNames.add(testSuite + "." + testName); 
} 

例外が実行時にPythonNodeクラスを使用するためにスローされている理由を誰もが説明できるなら、私は非常に感謝することでしょう。私が見る限り、Referenced Librariesに表示されているとおり、正しくインポートされます。

+0

PythonNodeはクラスパスに含まれていないそのアーカイブ内の他のクラスを参照していますか? –

+0

正直な答えは分かりません。私はそれが見つからない別のクラスであればスタックトレースに現れたと仮定していました。 – bmooney

答えて

2

Eclipse RCPまたはEclipseプラグインのいずれかをビルドしていると思います。私は正しい?

もしそうなら、あなたはpydev.jarをプラグインの依存関係の下に置くべきです。 plugin.xmlに移動し、pydev.jarをクラスパスに入れます

+0

こんにちは pydev.jarをクラスパスに追加するにはどうすればよいですか? 「追加」を選択すると、プロジェクトのフォルダ構造だけが表示されます。外部JARを追加するにはどうすればよいですか? – bmooney

+0

最初に.jarをプロジェクト構造にコピーする必要があります。そうしないと、Eclipseはプラグインとして一緒にパックする方法を知らないのです。 – nanda

+0

あなたのご協力に感謝します。それは有り難いです... – bmooney

関連する問題