web-dev-qa-db-ja.com

クラス「org.slf4j.impl.StaticLoggerBinder」の読み込みに失敗しました-どのクラスパスですか?

俺の 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% ? (私は持っていません!これのために特別に作成する必要があります)
  • Eclipseのプロジェクト.classpath? (私はこれを試したと思いますが、助けにはなりませんでした)
  • その他?

私はかなり 少数 件名の投稿 ここ にSOを見つけましたが、それらはすべて同じ答えを引用しています: "場所... onクラスパス "

Whichclasspath?

20
Withheld

最初に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は問題を解決するはずです。

解決:

  • ファイルシステムで次のjarを検索し、.m3にあるもの以外のすべてのコピーを削除します。
    1. slf4j-nop
    2. slf4j-simple
    3. slf4j-log4j12
    4. slf4j-jdk14
    5. logback-classic
0
Shaun Dashjian