多平台 getResourceAsStream

Multiplatform getResourceAsStream

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

目前我使用的是以下加载

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

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

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

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