我想讀取位於etc文件夾內的jar外部的log4j.xml文件。所以我創建的清單文件如下Jar無法找到使用manifest.mf配置的log4j配置文件
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.6.0_24-b07 (Sun Microsystems Inc.)
Built-By: Administrator
Main-Class: com.him.LogPrinter
Class-Path: ./lib/log4j.jar ./etc/log4j.xml
我的類文件如下
package com.him;
import org.apache.log4j.Logger;
public class LogPrinter {
/**
* @param args
*/
public static Logger logger = Logger.getLogger(LogPrinter.class);
public static void main(String[] args) {
logger.debug("I am a debug message");
logger.info("i am a info message");
logger.error("i am a error message");
logger.warn("i am a warn message");
System.out.println("hello");
}
}
當我運行使用
java -jar myapp.jar
,也沒有任何附加器的通常的例外可能是我的jar文件找到記錄器並且沒有生成日誌文件。
當我將log4.xml文件放入jar文件時,它會提供所需的輸出。
請幫助我無法弄清楚爲什麼即使配置文件位於使用manifest.mf文件配置的類路徑中,配置文件也不會被選中。 在此先感謝。
此外,我不會這樣做,你需要指定目錄,而不是文件,就像一個普通的類路徑。 –
感謝@DaveNewton它的工作(指定目錄,而不是文件) – HKumar
移動回答替代解決方案。 –