2013-10-17 20 views
0

我试图部署一个使用log4j的小应用程序。该应用程序作为可执行jar部署,其中包含一个包含Class-Path属性的清单。
这是通过Ant jar任务完成的。这是定义类路径的行在Java jar文件的清单中定义的classspath的范围是什么

<attribute name="Class-Path" value=" ./ islib islib/commons-lang-2.0.jar islib/commons-logging-1.0.jar islib/log4j-1.2.16.jar" > 

可执行jar部署并从C:/ ami/bin运行。如果它位于C:/ ami/bin/islib中,则无法找到log4j.properties,但如果它位于C:/ ami/bin中,则会找到它。 找到/ islib中的所有其他jar并且应用程序正常运行。

清单中的Class-Path是否仅为jar中的类定义类路径?

回答

1

Classpath定义了类加载器应该在哪里找到类。

Log4j.properties不从Classpath中读取,而是从文件系统中读取,即,相对于程序启动时的当前目录。

(如果您使用slf4j作为日志API,Logback将在Classpath中查找其配置文件)

相关问题