在动态java项目中放置应该由jar文件读取的配置文件的位置?

时间:2012-08-22 11:14:24

标签: java java-ee configuration web-config

  

可能重复:
  Problem locating file in a classpath

在这种情况下,xml文件之类的配置文件应该放在java动态Web项目中,其中lib文件夹中的外部jar文件应该在运行时读取配置文件。

2 个答案:

答案 0 :(得分:1)

底线是这些文件必须到达应用程序类路径。如果是网络,则WEB-INF/classes是最佳位置。 (正如@Easwaramoorthy Kanaga已经提到的那样)。

问题是将文件放在项目中的位置。 如果您使用maven,它几乎决定了位置src/main/resources。如果你不和maven一起把它们放到资源目录中。资源目录应在与src目录相同的级别上定义。例如,如果项目根目录下有src目录,则在同一位置创建resources目录。配置IDE以将这些文件复制到目标目录。更新构建脚本以执行相同操作。

答案 1 :(得分:0)

您可以将其放在WEB-INF / classes文件夹中。即使你可以在classes文件夹中放置一个完美的文件夹。

还有一件事,jar文件应该用硬编码路径读取配置文件,而不应该这样做。

String xmlFilePath = "configfile.xml";    
InputStream file = this.getClass().getClassLoader().getResourceAsStream(xmlFilePath);