【问题标题】:How to add external resources (properties file) on to the classpath so that war can read?如何将外部资源(属性文件)添加到类路径以便战争可以读取?
【发布时间】:2016-08-05 11:08:54
【问题描述】:

我们在将外部目录(具有 config.properties)添加到类路径时遇到了小问题。如果我们将它添加到类路径中,我们应该能够在 Web 应用程序中读取它。 Web 应用程序中有一些 Spring 应用程序将读取外部属性文件。我在哪里找不到正确的解决方案?你能指点我正确的方向吗?

谢谢, 拉玛克里希纳

【问题讨论】:

标签: java tomcat classpath


【解决方案1】:

如果您使用 tomcat,您可以编辑 conf/catalina.properties,并将您的属性文件夹附加到 common.loader 中,例如:

common.loader=...${catalina.base}/myPropertiesFolder

【讨论】:

  • 我在 C:\abs\config.properties 中有一个文件。如何将其添加到类路径中?有人从这个链接 (stackoverflow.com/questions/1300780/…) 指导,例如 set CLASSPATH=C:\abs\config.properties。这行得通吗?
  • @RamaKrishna.G,抱歉我没有使用set CLASSPATH=,对于我们的项目,我们使用catalina.properties 来获取额外的属性。但我认为CLASSPATH 应该可以工作。
  • 如果我想使用 catalina.properties 添加我的目录,我该怎么做?可以分享一段代码吗?
【解决方案2】:

将属性文件复制到tomcat\lib 目录可能就足够了,因为tomcat\conf\catalina.properties 已经包含common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar"

所以lib 不仅会填充任何包含的 jar 内容,还会填充所有包含的文件。

Tomcat Class Loader HOW-TO

【讨论】:

    【解决方案3】:

    我有类似的要求,我做了以下:

    1) 在 catalina.properties 中添加了针对 shared.loader 的属性文件夹路径。 示例:

        shared.loader="c:/ExternalResource"
    

    2) 然后使用以下命令读取属性:-

    Thread.currentThread().getContextClassLoader().getResourceAsStream(propertiesFileName)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-03
      • 2023-02-22
      • 1970-01-01
      • 2018-03-29
      • 2014-06-02
      • 1970-01-01
      • 2011-09-06
      • 1970-01-01
      相关资源
      最近更新 更多