【问题标题】:setting classpath for slf4j for java compiling为 java 编译设置 slf4j 的类路径
【发布时间】:2014-02-12 20:09:30
【问题描述】:

我在为slf4jcompiling java files 设置classpath 时遇到问题。 我尝试了两种方法: 1.在command line中提供classpath

javac -cp /Users/page/.m2/repository/org/slf4j/slf4j-log4j12/1.7.5/slf4j-log4j12-1.7.5.jar src/main/java/com/scg/domain/*.java src/main/java/com/scg/util/*.java

这给出了以下错误:

src/main/java/com/scg/util/ListFactory.java:8: error: package org.slf4j does not exist
import org.slf4j.Logger;
                ^
src/main/java/com/scg/util/ListFactory.java:9: error: package org.slf4j does not exist
import org.slf4j.LoggerFactory;
...../long error message
  1. 我尝试将export CLASSPATH 转换为我的env 变量。

export CLASSPATH=/Users/page/.m2/repository/org/slf4j/slf4j-log4j12/1.7.5/slf4j-log4j12-1.7.5.jar

当我尝试时,这也没有帮助并导致同样的错误

javac src/main/java/com/scg/domain/*.java src/main/java/com/scg/util/*.java

我正在尝试compile 两个packages 中的所有java 文件。但我需要在我的类路径中有slf4j. but somehow I am not able to get it work. 谢谢

【问题讨论】:

  • 您还需要 slf4-api,而不仅仅是绑定库。实际上,您只需要 slf4j-api,binding-lib 仅在运行时是必需的。
  • @sheltem:抱歉,你能解释一下你在这里的意思吗?当我使用 maven 时,我得到了它的编译良好。

标签: java classpath javac slf4j


【解决方案1】:

这个依赖就是api:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.5</version>
</dependency>

您需要类路径中的 slf4j-api.jar 进行编译,而不是 slf4j-log4j12.jar。

它在 maven 中工作,因为 binding-lib (slf4j-log4j12) 依赖于 api,因此 maven 也会加载它,而无需您将其明确定义为依赖项。

【讨论】:

  • maven 下载不存在的依赖是否正确?既然我已经用过 maven,它应该已经下载了..?
  • 它应该在您本地的 maven 存储库中,是的。我的猜测是/Users/page/.m2/repository/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多