2012-08-29 11 views
5

私は抽象クラスを実装するクラスを持っています。抽象クラスは私のプロジェクトの別のパッケージにあります。ビルドパス/プロジェクトを設定することで、クラスが抽象クラスであるパッケージを追加しました。実装しているクラスで、次のエラーが発生しました:型クラスの階層が矛盾していますクラッセのタイプの階層が矛盾しています

このパッケージを別の場所に追加しましたか?

ありがとうございました!

+6

一部のコードを表示してください。あなたの説明は、一貫しているよりもいくぶん少ないです。 – Erik

答えて

4

これは、スーパークラスに互換性のない変更を加えたが、それを再コンパイルしていないことを意味します。

MavenやAntのようなビルドシステムを使用したり、IDEを使用してすべてのコードをビルドすることをお勧めします。

+0

私はSVNバージョンをダウンロードしました。プロジェクトはすでにAntを使用しています。クラスに何かを設定する必要がありますか? – Deb

+1

すべてが再コンパイルされていることを確認する必要があります。私はあなたがこれをしようとすると、あなたの問題を説明するコンパイルエラーが表示されることを期待します。 –

+0

何かを責めることはありません。 "BDIGenericGeneratorEvent型の階層が矛盾しています" – Deb

29

これらのエラーは、階層内の一部のインタフェース/クラスを解決できないために発生しました。 例:クラスにエラーがあります。クラスX、XはYを継承し、YはZを継承します。ただし、zは含まれていないライブラリに属しているため。 したがって、zを含むパッケージをクラスパス/プロジェクトのJavaビルドパス(eclipseを使用している場合)に追加する必要があります。 助けてくれることを願っています。

+2

+1この回答ありがとうございます。私はちょうどこのエラーがあり、追加したいと思います:これは、クラスZが独自のクラスですが、構文エラーがある場合にも発生します。クラスZはコンパイルできません。私の場合、クラスZはJava 7メソッドを使用しているためコンパイルできませんでしたが、Java 6に環境をダウングレードしました。 –

1

これは、あなたが実装したクラスが、他のライブラリのいくつかの他のクラスやインタフェースを再び参照するインタフェースやクラスへの参照を持ち、利用できないクラスを意味します。

0
right click your project ,Properties- java build path- source- include all the cs file source(it may inherit the files) and sync. 

これは私にとって正しく機能しました。

+0

このアドバイスは使用されているIDEによって異なります。 @Debはあなたと同じものを使用していないかもしれません。 – zck

+0

ええ、それもcorect。 –

1

springframework.aopジャーは、それがウルproblmを解決しますあなたのクラスパスに追加し、私はそれは私もこの問題を抱え

0

解決して依存jarファイルを追加したのと同じPROBに直面していたのcosそれが動作を期待aopalliance.jarに依存しています他のプラグインプロジェクトから何らかのクラスを使用しようとしました。 私はmyClassがpp1Classを拡張するようなものを持っていた - ここで私はエラーがあった、pp1Classプラグインは依存として追加された。 pp1Classはpp2Classを拡張します。これはpp1(プラグインproj1)に依存していましたが、私のプラグインには依存しませんでした。私が行ったことはpp1に行き、pp2への依存関係を定義したところでプロパティをクリックし、 "この依存関係を再エクスポート"(これはMANIFEST.MFにあります)を確認します。 これは問題を解決するはずです、それは私の解決です。

0

このエラーのもう1つの理由は、基本クラスの1つが外部ライブラリにあるインターフェイスを実装していて、.classpathファイルがソース管理システム上に保持されている(したがって読み取り専用です)。

たとえば、ClassAはClassAを拡張し、ClassAはLibraryA.jarにあるInterfaceAを実装します。 ClassAはProjectAにあり、ClassBはProjectBにあります。 ProjectAの.classpathファイルは読み取り専用です。

ここでは、ProjectAからLibraryA.jarをエクスポートする必要があります。しかし、私は、新しいチームメイトがこれらのプロジェクトを(あるいは別のワークスペースを準備するときに)接続すると、このタイプの階層エラーが発生するというEclipseのバグがあると思います。この問題を解決するには、ProjectAの.classpathファイルをチェックアウトし、ライブラリを削除して再追加します(LibraryA.jarである必要はありません)。この操作は何とかエラーを解決します。

4

プロジェクトエクスプローラに移動します。

  1. あなたのプロジェクトのビルド・パス]をクリックし
  2. 設定次へ
  3. JREシステムライブラリを追加ライブラリを追加
  4. JREシステム・ライブラリーの削除]をクリックします
  5. クリックしてパスを構築し、その後、完了。

エラーは解決されます。

+0

私の場合、問題は他のJARライブラリにあったため、これは私には当てはまりますが、私は 'JREシステムライブラリ'を削除して追加しませんでした。私は 'maven-eclipse-plugin'(2.10)を使ってプロジェクトを作成し、疑わしいライブラリを削除して追加すると、本当にEclipse Lunaで動作します。 –

0

Eclipse、OSGi環境では、必要なパッケージをMANIFEST.MF-> Dependenciesタブ - > Imported packagesに追加できます。これで問題は解決します。または、クラスを含むプラグインをRequired Plugin-insに追加することができます

1

私のRCPアプリケーションの1つでこの問題に直面していました。

原因:マニフェストファイルの依存セクションにコアプラグインorg.eclipse.core.runtimeが追加されませんでした。 この依存関係を追加したときにjarの問題が解決されました。

ありがとう、 Sid

関連する問題