やりたいこと
SSHJを使用した時に出力される警告メッセージを抑止することです。
問題概要
SSHJのSSHClientクラスをnewした時に警告メッセージが出力されます。
問題詳細
SSHJのSSHClientクラスをnewした時に以下の警告メッセージが出力されます。
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
警告が出力されても、SSHJは問題なく使用できます。
たぶん、ログ出力ができないだけなのではないかと思います。
解決策
まずは素直に、警告メッセージに示されているサイトを参照します。
すると、
- "org.slf4j.impl.StaticLoggerBinder"クラスがメモリにロードできなかった時に出力されるメッセージであること
- クラスパスに、slf4j-nop.jar、slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar、または、logback-classic.jarのいずれか1つを配置することで問題が解決すること
が書かれています。
ということで、実行環境のクラスパスに、slf4j-nop-x.x.x.jar
を配置することで警告メッセージを抑止することができました。
x.x.x
の部分はバージョン番号になります。
ちなみに、EclipseのMavenプロジェクトをコンパイル/デバッグするような場合はpom.xml
に以下のように記述しておけば良さそうです。
pom.xml
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.7</version>
</dependency>
なお、上の例でバージョンに1.7.7
を指定しているのは、SSHJがslf4j-api
の1.7.7
を必要としているようだったので、そのバージョンと合わせてみました。
-- 以上--