不知道这怎么可能。我重新阅读了 getResourceAsStream,它总是返回 null。
InputStream source = this.getClass().getResourceAsStream("test.xml");
Finder(使用 OS X 和 Eclipse)中紧挨着 test.java 的是 test.xml
我可以在 TextWrangler 中打开它并查看它是否存在,其中包含数据。
如果有任何不同,这就是 Junit 测试。我去查看了我们系统上现有的 Junit 测试,我以与工作示例完全相同的方式使用它(如文件所在的位置和代码本身)。
有什么细微差别可以阻止我假设 getClass() 返回正确的路径?
原文由 bobber205 发布,翻译遵循 CC BY-SA 4.0 许可协议
getResourceAsStream()
正在使用 CLASSPATH,因此它将从 您的类所在的任何地方 加载,而不是您的源文件。我怀疑您需要将 XML 复制到与 .class 文件相同的目录中。