代码之家  ›  专栏  ›  技术社区  ›  Tom H

GetResourceAsstream在Mac OSX和Windows 7上的工作方式不同?

  •  3
  • Tom H  · 技术社区  · 15 年前

    我有一组依赖于test.properties文件的单元测试用例。当我使用maven(“mvn test”)在mac osx或linux下运行测试时,它们工作得很好。但是在Windows7下运行时,除非我将文件直接复制到类文件夹中,否则它们找不到该文件。返回属性的代码有以下两种方法:

    private void loadProperties() {
        try {
             properties.load(HibernateTestCase.class.getResourceAsStream(getPropertiesFilePath()));
        } catch (Exception ioExc) {
            ioExc.printStackTrace();
        }
    }
    
    private String getPropertiesFilePath() {
        return File.separator + "test.properties";
    }
    

    这里真正的交易是什么?文件路径是否设置错误?事先谢谢!

    2 回复  |  直到 15 年前
        1
  •  8
  •   Tom Hawtin - tackline    15 年前

    资源名称中的分隔符始终为“/”。 File.separator 因平台而异(在UNIX变体上,通常 / ,在Windows上不会)。

        2
  •  1
  •   Jim Garrison    15 年前

    要么您的类路径不同,要么您使用的是具有不同分辨率特征的不同类加载器。