我正在尝试从我的应用程序中读取属性文件的上下文路径,
properties.load(this.getClass().getResourceAsStream(path));
import java.util.Properties;
public class test1 {
public String getValues()
{
PropertiesFileReader fileReader = new PropertiesFileReader();
Properties prop = fileReader.getProp("/messages/AttachFile.properties");
String out = prop.getProperty("FILE_NAME");
return out;
}
}
这在属性文件位于 WEB-INF -> classes -> messages -> myfile
下时有效
但是当我将这个文件移动到其他文件夹时,比如 WEB-INF -> messages -> myfile
它似乎没有得到路径......
编辑:我没有使用 servlets...
最佳答案
如果失败是因为新路径不是类路径的一部分,而 Class#getResourceAsStream()
从类路径加载资源。 /WEB-INF/classes
默认是 Servlet API 规范中指定的类路径的一部分,这就是它起作用的原因。我建议将其保留在类路径中或将新路径 /WEB-INF/resources
添加到类路径中。
如果您使用的是像 Eclipse 这样的 IDE,那么您可以通过将它作为 Source Folder 添加到项目的构建路径中(这将在构建过程中将其移回 /WEB -INF/classes
无论如何)。或者,您也可以只在 Java 源代码根目录中创建一个 resources
包,然后将文件放在那里。它也将成为类路径的一部分。
关于java - 如何从 java 中的 web 服务获取属性文件的上下文路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5282667/