8

STS で以下のエラーが発生します。

タイプ org.springframework.core.env.EnvironmentCapable を解決できません。必要な .class ファイルから間接的に参照されている

4

4 に答える 4

7

これは推移的な依存関係の問題のようです。これが意味することは、コードが何かを行うために jar またはライブラリに依存していることです。明らかに、Spring フレームワーク コードに依存しています。さて、Spring コードはすべて、ライブラリーと jar にも依存しています。

ほとんどの場合、IDE がプロジェクトをビルドしようとするときにクラスが検出される ように、正確にバージョン管理されたorg.springframework.corejar をクラスパスに追加する必要があります。EnvironmentCapable

これは、jar の衝突の問題でもある可能性がありますが、可能性は低いと思われます。アプリケーションで jar の衝突 (「dll 地獄」とも呼ばれます) が発生すると、コンパイラは同じ完全修飾名を持つ複数の jar とクラスを検出します。たとえば、Tomcat サーバー ライブラリ全体とともに、Spring をクラスパスに追加したとします。これら 2 つの jar には、まったく同じ名前のクラス、おそらく同じバージョン、または異なるバージョンが含まれている可能性があります。いずれにせよ、コンパイラがそのEnvironmentCapableクラスを探すとき、2 つ (この不自然な例では) を見つけます。1 つは Spring jar にあり、もう 1 つは Tomcat jar にあります。どちらを選択すればよいかわからないため、 をスローしますClassDefNotFoundException。これは、発生したエラーとして現れる/現れる可能性があります。

于 2013-12-10T15:30:09.023 に答える