Java getResourceAsStream无法加载资源 [英] Java getResourceAsStream cannot load resource
本文介绍了Java getResourceAsStream无法加载资源的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试加载一个其名称在属性文件中指定的类。下面是相同的代码。
try {
Properties properties = new Properties();
InputStream in = MyAbstractFactory.class.getResourceAsStream("/some.properties");
properties.load(in);
String impl = properties.getProperty("key");
MyAbstractFactory factories = (MyAbstractFactory) Class.forName( impl ).newInstance();
return factories;
} catch (Exception e) {
return new DefaultFactoriesImpl();
}
此代码是JAR文件的一部分。属性文件就在JAR之外。无法加载属性文件,正在加载DefaultFactoriesImpl。我知道当MyAbstractFactory.class.getResourceAsStream在类路径中找不到资源时会发生这种情况,但这里似乎不是这样。
目录结构:-
- com
- myjar.jar
- 某些属性
我执行的命令是"Java-jar myjar.jar"
关于为什么会发生这种情况的任何反馈。这会不会与ClasLoader有关?我想补充的是,当我在eclipse中运行这段代码时,它似乎可以很好地获取一些属性。
推荐答案
从您传递给getResourceAsStream()
的参数中删除前导斜杠。
这篇关于Java getResourceAsStream无法加载资源的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文