我正在尝试从打包在 JAR 中的文件以及读取它的类中读取。为此,我使用以下内容:
getClass().getClassLoader().getResourceAsStream(file)
当我在 OSX 上创建和运行 JAR 文件时,这工作正常,但如果我在 Windows 上创建和运行 JAR 文件,上面的行返回 null。
我在这里错过了什么吗?如果我在 OSX 上创建 JAR 并在 Windows 上运行它,它工作正常。仅当我在 Windows 上创建 JAR 时才会出现此问题。
编辑:值得一提的是,JAR 文件中没有文件夹层次结构。一切都存储在一个级别,因此读取文件的类和文件本身都在同一个目录中。此外,这就是我在 OSX 和 Windows 上创建 JAR 文件的方式:
jar -cmf manifest.mf run.jar *.class file1 file2
编辑 2:我要加载的文件是 java .properties 文件。我认为这不是导致问题的原因吗?