从JAR中读取文件不在Windows上工作

时间:2013-04-12 00:39:09

标签: java windows file jar classloader

我正在尝试从一个打包在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文件。我认为这不是造成这个问题的原因吗?

3 个答案:

答案 0 :(得分:0)

跳过类加载器部分。只是getClass()。getResource ....

答案 1 :(得分:0)

以这种方式试试getClass()。getResourceAsStream(" / file1")。

答案 2 :(得分:-1)

使用文件分隔符时,不要硬编码! 请改用java.io.File.separator:http://docs.oracle.com/javase/7/docs/api/java/io/File.html#separator