EclipseでHibernateを使用しようとしています。私は新しい単純なプロジェクトを作成しています。CVSを介して同僚のプロジェクトもダウンロードしました。両方とも機能しませんが、私の同僚のEclipseでは機能します。問題は、Hibernateクラスのインポートごとに、Eclipseが言うことです:
The import org.hibernate cannot be resolved
ただし、すべてのHibernate jarはビルドパスにあります。
antlr-2.7.6.jar
cglib-2.2.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
slf4j-api-1.6.1.jar
問題が見つかりました。それはhibernate3.jarでした。 .Zipからうまく抽出されなかった理由がわかりません。多分破損です。 jarが破損しているかどうかを確認する良い方法は、Eclipseの「プロジェクトエクスプローラー」でツリー構造をナビゲートすることです。jarノードを展開できない場合、おそらく破損しています。 ドラッグアンドドロップを「プロジェクトエクスプローラー」に移動すると、破損したパッケージが頻繁に発生することがわかりました。 OS環境でそれらを移動してコピーする方が良いかもしれません!皆さん、ありがとうございました。
次のメニュー項目に移動して、プロジェクトのクリーニングを試してください。
Project > Clean...
それでもうまくいかない場合は、ビルドパスからjarを削除して、再度追加してみてください。
プロジェクトをきれいにします。そして、ビルドパス上に実際にあるjarファイルを(エラーなしで)再確認します。また、「問題」ビューに何もないことを確認します。
明らかに有効な問題がある場合もありますが、Eclipseは正当な理由でこのエラーをスローすることがあります。
これはまだ(2019-03)古い(2010)Eclipseバグであり、プロジェクト設定にごくわずかな変更を加えることで解決できます。
変更することを選択した設定は、[プロジェクト]> [プロパティ]> [Javaビルドパス]> [順序とエクスポート]> [意味のない順序の変更]> [適用]です。
順序を元に戻しても、問題に回帰することはありません。単純に touch ファイルを変更することでも問題が解決する場合があります(次回タッチをテストします)。
クラスパスが何らかの形で壊れているという問題がありました。
だから、パッケージエクスプローラーでプロジェクトを右クリック>プラグインツール>クラスパスを更新...
プロジェクトを削除し(ディスク上で削除しないで)、再度インポートすることで解決しました。
プロジェクトのビルドパスにJREシステムライブラリを追加してみてください。
プロジェクトを更新してこの問題を解決しました。Mavenプロジェクトを右クリックし、Maven->プロジェクトの更新->スナップショット/リリースの強制更新チェックボックスを選択します。
私と一緒にコンパイラー準拠レベルの変更を助けました。理由は不明ですが、1.6に設定されていたため、1.8に変更しました。
プロジェクトレベルでプロジェクト>プロパティ> Javaコンパイラを右クリックし、Eclipseでメニューウィンドウ>設定> Java>コンパイラをクリックします。
上記のすべての答えを試しましたが、運はありませんでした。私の場合、追加の「.class」ファイルを含む生成されたbuild/classesフォルダーがあります。最終的にパッケージエクスプローラーに行き、プロジェクトを右クリックして「更新」オプションを選択すると、ビルド/クラスフォルダーが再び利用可能になり、問題が解決しました。
これで問題が解決しました。
1)プロジェクトのクリーンプロジェクト->クリーン...
2)プロジェクトを右クリック-> BuildPath-> BuildPathの構成->ライブラリタブ-> JRE SYSTEM LIBRARYをダブルクリック->代替JREを選択
3)[保存]をクリックします
4)再びプロジェクトエクスプローラーでプロジェクトに移動し、プロジェクトを右クリック-> BuildPath-> Configure BuildPath-> Librariesタブ-> JRE SYSTEM LIBRARYをダブルクリック->今回は「Execution Environment」を選択
5)適用
私の場合、Mavenリポジトリー内の壊れたjarでした。リポジトリ内のjarファイルを削除し、Mavenに再度ダウンロードさせます。
コマンドラインからmvn clean install
を実行したところ、問題なく実行されましたが、Eclipseはまだコードをコンパイルできませんでした。 Eclipseでmaven install
を実行すると、Mavenが不正なjarファイルについて不平を言っていることがわかりました。それで私はそれを削除し、再びmaven install
を実行しました。問題はなくなりました。
作成したjarを追加し、クラスのベースディレクトリ以外のパッケージベースディレクトリを設定したため、同じ問題が発生しました。結果として、クラスJava.util.List
はutil.List
としてインポートする必要がありましたが、推奨されるインポートは最初のものでした。
参照されたライブラリの下のインポートされたjarをチェックして、正しくインポートされていることを確認します
私はこの背後にある理由を理解していませんでしたが、これは私が直面していた同じ問題を解決しました。上記のソリューションで説明されている手順を実行する前に、これらの手順が必要になる場合があります(すべてのプロジェクトをクリーンアップし、自動的にビルドします)。
プロジェクトを右クリック->プロパティ->プロジェクトファセット-> Javaを選択->適用
この問題が発生した場合は、[プロジェクト]> [クリーン]に移動し、[すべてのプロジェクトをクリーン]を選択します。解決されるはずです。そうでない場合は、それらのjarを削除してから再度追加してください。最後にEclipseを再起動してみてください。
.m2ディレクトリに存在しないjarファイルをダウンロードするには、プロジェクトpom.xmlに対してmvn clean install
コマンドを実行する必要があります。次に、Alt+F5
をクリックしてプロジェクトの依存関係を更新する必要があります。これは私のために働く!
ソースをリンクすることで解決しました。エクスプローラからプロジェクトを右クリックし、プロパティを選択し、Javaビルドパスを選択し、タブからソースを選択して、ボタン「LinkSource」を押します。そして、プロジェクトに追加するフォルダーを指定します。
「module-info.Java」を削除すると、問題が解決しました!
このファイルは自動的に生成され、私の階層に表示されました...
私もインポートできませんでした。 1.8にコンパイルしようとしている間に、1.6バウンドライブラリ/ jarを使用しようとしたことを理解するのに数時間かかりました。 1.6を使用するようにプロジェクトを切り替えたときに、インポートの問題はなくなりました。すべてのエラーメッセージが間違った方向に導かれていました。ソースだけで、バージョン1.6を対象とするいくつかの制限を見つけました。そして:例えば、.settingsと.classpath(File-Search)-> org.Eclipse.jdt.core.compiler.codegen.targetPlatform = 1.6は、そのような問題についてのヒントを与えることができます。
MavenリポジトリのJPA JAR を使用してこの問題を解決し、プロジェクトのビルドパスに追加しました。
同じ問題に直面し、pom.xmlの2つの異なる依存関係で2回追加されたjarを削除することで解決しました。依存関係の1つを削除すると、問題は解決しました。
Mavenで作業していてこの問題がある場合は、アーティファクトが存在する場合、リポジトリサーバー(たとえば、nexusサーバー)を確認してください。時々、彼らはアーティファクトの名前を変更することができ、古い名前のアーティファクトを取得しようとします。
同じ問題が発生しました。 jarをダウンロードしてビルドパスに追加しましたが、拡張子が.jar.Zipであることに気付きませんでした。再び.jarに変換し、ビルドパスに追加しました。
それは私の問題を解決しました。それは非常にばかげた間違いですが、誰かを助けることができるようにここに書きました。
すべてのライブラリが適切に配置されているかどうかを確認してください。同じ問題がありました。しかし、libフォルダーを移動し、ビルドパスにすべてのjarを再度追加することで解決しました。