2017-12-16 9 views
0

私は複数のプロジェクトでJavaコードを構成しているEclipseプラグインを使用しています。プロジェクトの1つでは、外付けのjarファイルを追加し、そこからいくつかのクラスを使用しました。コンパイル時に報告されたエラーはありませんが、実行時にはNoClassDefFoundError例外がスローされました。私はthis解決策の後の問題を修正しました。注文に外部jarを追加し、ビルドパスをエクスポートするとプロジェクトにエラーが発生します

この後、私はProject -> Clean..を実行し、別のプロジェクトで突然私はThe method filter(Predicate<? super String[]>) in the type FluentIterable<String[]> is not applicable for the arguments ...というエラーが出ます。

私は両方の状況でclasessを比較し、その起源は変更されません。

どうしてですか?

+1

Eclipseプラグインのコードを複数のプロジェクトに分割する方法を教えてください。 [問題を再現するための例](https://stackoverflow.com/help/mcve)を入力してください。どのEclipseバージョンとどのJavaバージョンを使用していますか? – howlger

+0

@howlger依存関係を持つMaven構造体を使用しています。私は問題を発見した。インポートされたJarは 'guava'から別の' FluentIterable'クラスを使用していましたが、クラスパスを元に戻すときにクリーンを実行しなかったので、私はクラスの起源を見ていました。 –

+0

@howlger私には分かりませんが、外部のjarを使用するパッケージのビルドパスのみを設定しているので、他のパッケージに影響するのはなぜですか?(私の場合は別のプロジェクトに影響します) –

答えて

0

インポートしたjarファイルがguava jarの別のFluentIterableクラスを使用していたため、エラーが発生しました。ビルドパスを元に戻したとき、私はProject->Cleanを実行せず、Eclipseはまだ悪いクラスの場所を指していたので、クラスの起点が同じであると思った。

関連する問題