2017-10-05 36 views
0

まず最初に、私がEclispseとJavaの初心者だという警告があります。そして、現在、学校の課題に取り組んでいます。Eclipse:別のプロジェクトでJavaクラスを継承する

私は最初にクラスP1を実装したプロジェクトP1を作成しました。パッケージを定義していないことに注意してください。つまり、すべてのクラスのデフォルトパッケージにあります。

その後、私は、私はクラスB.クラスBは、等から継承実装する新しいプロジェクトP2作成しました:私が編集した新しいプロジェクトにクラスを使用することができるようにするために

public class B extends A { 

をJava Build Path - > Add Class Folderのようにプロジェクトを作成し、クラスAのソースの場所を追加します。 すべてがうまく構築され、実行されました。 >追加クラスフォルダと - のJavaのビルド・パス:

public class C extends B { 

再び私が編集したプロジェクトのように:私はクラスCのクラスCがBからのように継承して実装どこ

は、それから私は、新しいプロジェクトP3を作成しましたクラスAとクラスBのソースの場所を追加します。 しかし、今はエラーが発生します。私はクラスAを見つけることができないというエラーを受け取ります。私は最初の行で既に 'B'の下に表示されているエラーです。

私はたぶん何か間違っています。従属関係を追加するこの方法は意味がないようです。継承ツリーにすべてのクラスを追加することは無意味であるようです。 誰かが私が間違っていることを説明することはできますか(おそらく1つ以上のこと)。あなたはEclipseで別のプロジェクトであるプロジェクトからソースを使用したい場合は

よろしく、 ルイ

+0

すでにBがAでコンパイルされていて、既にBのソースがCに含まれているので、Cからソースを削除してみてください。 – Pradeep

+1

各クラスごとに個別のプロジェクトを作成するのは良い方法ではありません。パッケージを作成し、あなたが探しているクラスを拡張/継承します。 – Pradeep

+0

@Pradeep:依存関係や最小限の単純化された例を学ぶための単なるチュートリアルのユースケースかもしれません。なぜOPにプロジェクトごとに1つのクラスしかないのでしょうか? – cello

答えて

1

は、ちょうどクラスフォルダを追加しないでください。代わりに、他のプロジェクトに依存関係を定義します。

プロジェクトP2がプロジェクトP1のソース/クラスを使用するように定義するには、P2のプロジェクト設定を開き、「Javaビルドパス」に移動します。ソースフォルダを追加する代わりに、[プロジェクト]タブに切り替えます。 "Add ..."をクリックし、プロジェクトP1を選択します。

次に、[注文とエクスポート]タブに切り替えて、プロジェクトP1がエクスポート済みとしてマークされていることを確認します。これにより、P3からP2への依存関係を追加すると、P3はP1からのソースも取得します。

この設定はEclipseでのみ機能することに注意してください。大規模なシステムでは、MavenやGradleなどの依存関係管理システムを使用して、依存関係の定義と設定を標準化し、異なるIDE間で動作し、システムを構築する方法で処理する必要があります。

+0

ありがとうございました。私は今夜​​家で試してみる。 – Rui

関連する問題