我正在尝试加载属性文件而不使用文件的实际路径。我已经使用以下方法在其他一些简单的应用程序上完成了这些:
InputStream inputStream = ClassLoader.getSystemResourceAsStream(PROPERTIES_FILE);
props.load(inputStream);
但这次它不起作用。由于某种原因,inputStream为null。 PROPERTIES_FILE是一个定义为“app.properties”的常量。我试图删除.properties扩展并获得相同的结果。
有什么想法吗?
感谢。
答案 0 :(得分:13)
PROPERTIES_FILE常量应该包括包和属性文件(例如“com / some / library / file.properties”。
final static String PROPS_FILE = "/com/some/library/file.props";
//The preceding "/" is dependendant on wheterh
//you are going to be giving a relative or absolute location
InputStream is = YourCurrentClass.class.getResourceAsStream(PROPS_FILE);
答案 1 :(得分:0)
当getSystemResourceAsStream
返回null
时,表示找不到资源。确保请求的资源确实位于指定位置的类路径上。
答案 2 :(得分:0)
遇到了同样的问题。
原因:我将DAO
包重命名为dao
。展开artifact
时,目录DAO
不会被覆盖。
所以我在项目内部获得了dao
,在文件系统:facepalm中得到了DAO
: