多平台getResourceAsStream

时间:2015-05-19 12:31:14

标签: java windows unix path separator

我应该使用哪些文件分隔符来指定资源路径?我运行打包程序java -jar program.jar

目前我使用以下加载

 inputStream = getClass.getResourceAsStream(
                   File.separator + "resources" + File.separator + "my.class");

在linux上,它被正确评估为/resources/my.class并且已加载该类。但是,在Windows上会抛出NullPointerException。什么是正确的用法?我迫切需要我的程序是多平台的。

我有点困惑,因为documentation通知路径可能以/开头,而 var store = Ext.create('Ext.data.TreeStore', { model:model proxy: { type: 'memory' }, root: { expanded: false, children: childreanArr } }); 不是Windows分隔符。

1 个答案:

答案 0 :(得分:3)

资源路径应始终使用' /'因为它在概念上没有寻找文件路径,而是在类路径条目中寻找资源路径。