2014-02-12 81 views
4

我在設置classpathslf4jcompiling java files時出現問題。 我嘗試了兩種方式:1。 提供classpathcommand line爲slf4j設置java編譯的類路徑

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. 我試圖exportCLASSPATHenv變量。

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所有的java文件有兩種packages。但我需要有slf4j在我的類路徑. but somehow I am not able to get it work. 感謝

+0

您還需要slf4-api,而不僅僅是一個binding-lib。實際上,你只需要** slf4j-api,binding-lib只在運行時才需要。 – sheltem

+0

@sheltem:對不起,你能解釋一下你的意思嗎?當我使用'maven'時,編譯得很好。 – eagertoLearn

回答

8

這種依賴性是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也會加載,而且沒有明確地將其定義爲依賴項。

+0

maven下載依賴如果它不存在正確?現在我已經使用了maven,它應該已經下載了..? – eagertoLearn

+0

它應該在你的本地maven倉庫中,是的。我的猜測是'/ Users/page/.m2/repository/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar' – sheltem