多平台 getResourceAsStream

pet*_*bel 2 java unix windows path separator

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

目前我使用以下加载

 inputStream = getClass.getResourceAsStream(
                   File.separator + "resources" + File.separator + "my.class");
Run Code Online (Sandbox Code Playgroud)

在 linux 上,它被正确评估为/resources/my.class并加载了类。但是,在 WindowsNullPointerException上抛出了 a 。正确的用法是什么?我非常需要我的程序是多平台的。

我有点困惑,因为文档通知路径可能以/不是 Windows 分隔符的开头。

小智 5

资源路径应始终使用“/”,因为它不是在概念上查找文件路径,而是在类路径条目中查找资源路径。