在java应用程序中读取外部属性文件

在java应用程序中读取外部属性文件,java,tomcat,properties,Java,Tomcat,Properties,我想从web应用程序外部加载属性文件。获取属性文件的代码如下所示 Properties p = new Properties(); p.load(this.getClass().getClassLoader().getResourceAsStream("a.properties")); 我正在使用tomcat服务器,我想将属性文件放在tomcat服务器中。我可以将它放在服务器中的什么位置,以便在运行应用程序时在类路径中使用它?我不想更改上面的代码,因为我还必须运行同一个应用程序和服务器基本

我想从web应用程序外部加载属性文件。获取属性文件的代码如下所示

 Properties p = new Properties();
 p.load(this.getClass().getClassLoader().getResourceAsStream("a.properties"));

我正在使用tomcat服务器,我想将属性文件放在tomcat服务器中。我可以将它放在服务器中的什么位置,以便在运行应用程序时在类路径中使用它?我不想更改上面的代码,因为我还必须运行同一个应用程序和服务器

基本上有三种方法:在
我推荐第一种选择。将a.properties放在类路径中。然后加载:

Properties properties = new Properties();
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("a.properties"));

通过这种方式,您可以加载相对于类路径“根”的属性。建议使用Thread.currentThread().getContextClassLoader()返回的类加载器进行此操作。

如果我将属性文件放置在web项目外部,例如d驱动器中。如何将此路径包括在类路径中?在这种情况下,可以使用绝对路径:Properties Properties=new Properties();properties.load(new FileInputStream(“D:/absolute/path/to/a.properties”);对不起..我不想硬编码路径,我只想给出属性文件名…从tomcat服务器加载它,我可以将它放在tomcat中?我有一个疑问,我如何在tomcat/conf/catalina.properties中指定属性文件路径?