【问题标题】:What is the scope of the classspath defined in a the manifest of a Java jar fileJava jar 文件清单中定义的类路径的范围是什么
【发布时间】:2013-10-17 16:11:24
【问题描述】:

我正在尝试部署一个使用 log4j 的小应用程序。该应用程序部署为一个可执行 jar,其清单包含 Class-Path 属性。
这是通过 Ant jar 任务完成的。这是定义类路径的行

<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 部署和运行。如果 log4j.properties 在 C:/ami/bin/islib 中,则无法找到它,但如果它在 C:/ami/bin 中,则可以找到它。 /islib 中的所有其他 jars 都找到了,应用程序运行正常。

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

【问题讨论】:

    标签: java log4j executable-jar


    【解决方案1】:

    类路径定义类加载器应该在哪里找到类。

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

    (如果你使用 slf4j 作为日志 API,Logback 会在 Classpath 中查找它的配置文件)

    【讨论】:

      猜你喜欢
      • 2015-11-20
      • 2017-01-04
      • 2012-07-13
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 2015-01-18
      • 2023-03-18
      • 1970-01-01
      相关资源
      最近更新 更多