【发布时间】:2010-11-06 06:34:53
【问题描述】:
我有一个包含在 A.JAR 中的应用程序。这个 jar 有几个依赖项,因此它们在清单中指定为“lib/B.JAR lib/C.JAR lib/D.JAR”。我有 A.JAR 的安装目录,在它下面有 lib 目录和其他三个。
我转到我的安装目录并运行“java -jar A.JAR”来运行应用程序,它开始运行。但是,它会查找用于设置 log4j 的 log4j.properties。现在据我所知,log4j.properties 需要在类路径中。
现在让我们假设我想运行多个 A.JAR 实例,但具有各种 log4j 属性。因此,我设置了 4 个安装目录(inst1、inst2、...),并将 A.JAR、自定义 log4j.properties 和 lib 目录放在每个目录中。
- 这是正确的方法吗(忘记复制本身,我可以使用符号链接来做到这一点)?也许有一种方法可以告诉 log4j 在运行时使用一些定义 (-D) 在特定位置查找属性?
- 如果我描述的是一个好的设置,我该如何实际运行它? Java 不会“捕获” log4j.properties 作为其类路径的一部分。运行“java -classpath .-jar A.JAR”也没有帮助。
【问题讨论】: