
ClassLoaderas时:
InputStream stream= getClass().getClassLoader().getResourceAsStream("/com/thinkplexx/lang/de/general.xml");前导“ /”是没有意义的。因此,正确的格式是“ com / thinkplexx / lang / de / general.xml”。
如果是,而是使用“类”,例如:
InputStream stream= getClass().getResourceAsStream("/com/thinkplexx/lang/de/general.xml");您得到不同的行为。该
Class.getResourceAsStream会考虑类,而领先“”
相对于包含类的包。以“。”开头的资源。是绝对的,或相对于jar根解析的。
因此,如果
this是对的引用
com.example.SomeThing,则预期的行为是:
getClass().getResourceAsStream("/a/b/c.xml") ==> a/b/c.xmlgetClass().getResourceAsStream("a/b/c.xml") ==> com/example/a/b/c.xmlgetClass().getClassLoader().getResourceAsStream("a/b/c.xml") ==> a/b/c.xmlgetClass().getClassLoader().getResourceAsStream("/a/b/c.xml") ==> IncorrectMaven2松懈并允许使用最后一种形式。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)