web-dev-qa-db-ja.com

Eclipse:宣言されたパッケージは予期されたパッケージと一致しません

外部プロジェクトのインポートに問題があります。 File-> Import ...-> Existing Projects into Workspaceに移動し、プロジェクトが配置され、すべてがインポートされるフォルダーを選択します-しかし、プロジェクトのパッケージ名はEclipseが期待するものではないようです。パッケージ名にはすべて接頭辞があります。

prefix.packagename1
prefix.packagename2

等.

しかし、Eclipseは期待しています

src.prefix1.prefix.packagename1
src.prefix1.prefix.packagename2

など。ディレクトリはsrc/prefix1/prefix/package1であるため

外部コードをいじりたくありません。ディレクトリ「src/prefix1」を無視するようにEclipseに指示するにはどうすればよいですか?または、他に何ができますか?

80
HenryNguyen

ビルドパスに移動して、ソースパスをsrcではなくsrc/prefix1に変更します。

srcディレクトリを右クリックして[ビルドパス/ビルドパスから削除]を選択し、src/prefix1ディレクトリを見つけて右クリックして[ビルドパス/として使用]を選択するのが最も簡単な場合がありますソースフォルダ」。

97
Jon Skeet

私はこの問題に遭遇しましたが、スキート氏の解決策がうまくいかなかったので、この問題をどのように解決したかを共有します。

ソースディレクトリを宣言する前に、 'src'の下でJavaファイルを開いたことがわかりました。

Eclipseの「src」ディレクトリを右クリックし、「build path」を選択してから、「Use as Source Folder」を選択します

クローズして再オープンすでにオープンされているJavaファイル(F5の更新は機能しませんでした)。

Javaファイルへのパスを、ファイル内のパッケージと「prefix1」以降で指定しました(要求者の質問prefix1.prefix.packagename2からの例)。これは動作するはずです

Eclipseはもはや「src」について文句を言うべきではありません。

62
Kyle Shanafelt

問題の* .Javaファイルを他のフォルダーに移動します。

「src」アイテムをクリックし、「F5」を押します。

赤十字は消えます。

* .Javaファイルを「パッケージパス」に戻し、「src」項目をクリックして「F5」を押します。

すべて大丈夫です。

10
Vlad

既存のプロジェクトをインポートした場合は、ソースフォルダーを削除してからビルドパスに再度追加し、Eclipseを再起動します。ほとんどの場合、Eclipseは再起動するまでエラーを表示し続けます。

2
Parveen Yadav

ビルドの失敗がIDEの外部で実行された後に起こります。ワークスペースのクリーニングが機能しない場合は、1)すべてのプロジェクトを削除します。2)STS/Eclipseを閉じて再起動します。3)プロジェクトを再インポートします。

1
Bradley D

プロジェクトのsrcフォルダーに移動し、そこからすべてのコードを一時的な場所にコピーして、プロジェクトをビルドします。そして、実際のコードを一時的な場所からプロジェクトsrcにコピーします。そして、ビルドを再度実行します。問題は解決されます。

注:これはEclipseに固有です。

0
Deepak Gupta

たまたま同じ問題を抱えていました。しかし、最初のいくつかの答えは私にとってはうまくいきません。解決策を提案します:。classpathファイルを変更します。たとえば、classpathentryノードのパスを次のように定義できます:path = "src/prefix1/Java"またはpath = "src/prefix1/resources"。それが役立つことを願っています。

0
Jack

プロジェクトにpackage name1.name2.name3.name4(宣言済みパッケージ)のようなパッケージがあるとします

パッケージエクスプローラーに表示されます
name1.name2という名前のパッケージトップレベル
name3.name4という名前のサブパッケージ

Eclipseは、インポート元からディスク上のファイルディレクトリ構造からパッケージ名を抽出するため、エラーが発生します。

おそらく、ワークスペース外のフォルダーへのシンボリックリンクを使用していたため、私の場合はもう少し複雑でした。

私は最初にBuild Path.Java Build Path.Source Tab.Link Source Button.Browseを試しました。package.Folder-nameのname1の前のフォルダーを好きなように参照します(私は思う)。しかし、問題がありました。

次に、ビルドパスからフォルダーを削除し、(ファイル)>(インポート...)>(全般)>(ファイルシステム)をクリックして、(次へ)をクリックし、(ディレクトリから)>(name1より上のフォルダーを参照...)>(詳細設定)ボタンをクリックし、(ワークスペースにリンクを作成する)をクリックして、(完了)をクリックしますボタン。

0
darKoram

.classpathファイルを持たないAndroidプロジェクトをインポートすると、Eclipseでこの問題が発生することがあります。 Eclipseが作成するものは、Androidが期待するものとまったく同じではありません。ただし、Android .classpathファイルは通常すべて相対であるため、別のプロジェクトから正しい.classpathファイルを誤った.classpathにコピーするだけです。これを行う方法を示すビデオを作成しました: https://www.youtube.com/watch?v=IVIhgeahS1Ynto

0
user3649912

私のために働いた唯一のことは、プロジェクトを削除してから再度インポートすることです。魅力のように動作します:)

0
Slim