俺の pom.xml
には、SLF4Jへの参照が1つだけ含まれています。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.5.10</version>
</dependency>
このエラーが発生しています:
SLF4J:クラス "org.slf4j.impl.StaticLoggerBinder"のロードに失敗しました。
SLF4J:デフォルトの無操作(NOP)ロガー実装SLF4J:
詳細は http://www.slf4j.org/codes.html#StaticLoggerBinder を参照してください。
私はそのURLをチェックし、実際に解決策を提供します: "slf4j-nop.jar、slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jarの1つ(そして1つだけ)を配置しますまたはクラスパス上のlogback-classic.jarが問題を解決するはずです。 "
私の質問は:whichclasspath?
.classpath
? (私はこれを試したと思いますが、助けにはなりませんでした)私はかなり 少数 件名の投稿 ここ にSOを見つけましたが、それらはすべて同じ答えを引用しています: "場所... onクラスパス "。
Whichclasspath?
最初にSLF4Jを追加するには、[〜#〜] one [〜#〜]と[〜#〜] pom.xml内のこれらの依存関係の1つ[〜#〜]。これは、使用することを選択した実装によって異なります。 pom.xmlに追加するすべての依存関係は、クラスパスに自動的に追加されます。 Eclipseを使用している限り、システムの%CLASSPATH%を変更する必要はありませんか?
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version></version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
最後に重要なことですが、エラーSLF4J:クラス "org.slf4j.impl.StaticLoggerBinder"のロードに失敗しました。
バンドルされたmavenバージョン(m2e)を使用している場合、Eclipse JunoとIndigoはメッセージSLF4J:クラス "org.slf4j.impl.StaticLoggerBinder"のロードに失敗しましたを抑制していません。この動作は、m2eバージョン1.1.0.20120530-0009以降に存在します。
ただし、これはエラーとして示され、ログは正常に保存されます。強調表示されたエラーは、このバグが修正されるまで存在し続けます。これについての詳細は m2e support site を参照してください。
このメッセージを抑制するために現在利用可能なソリューションは、Eclipseのバンドルバージョンではなく、外部のMavenバージョンを使用することです。この解決策とこのバグに関する詳細については、以下の質問をご覧ください。
SLF4J:クラス "org.slf4j.impl.StaticLoggerBinder"の読み込みに失敗しました。エラー
依存関係を管理するためにMaven
を使用しています。私の場合、このエラーが発生したのはでした。これは、システムのクラスパスにslf4j-simple
jarが複数あったためです。 SLF4Jドキュメント は次のように述べています。
Slf4j-nop.jar slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jarまたはlogbackの1つ(および1つだけ)を配置するクラスパスの-classic.jarは問題を解決するはずです。
.m3
にあるもの以外のすべてのコピーを削除します。