Eclipse getResourceAsStream返回null

时间:2010-02-03 21:07:26

标签: eclipse null resources

我无法获取getResourceAsStream来查找文件。我把文件放在顶级目录,目标目录等等,并在前面尝试了“/”。每次返回null。

有什么建议吗?感谢。

public class T {
 public static final void main(String[] args) {

  InputStream propertiesIS = T.class.getClassLoader().getResourceAsStream("test.txt");

  System.out.println("Break");
 }
}

6 个答案:

答案 0 :(得分:12)

将您的文件“test.txt”放入您的类的java文件所在的同一目录(相同的包)。然后使用

T.class.getResourceAsStream( "test.txt" );

这很有效,因为eclipse会自动将文件作为资源复制到类路径中。使用命令行时,必须手动执行此操作。

答案 1 :(得分:11)

您不需要将这些文件添加到同一目录中以使其工作。

当我创建一个新的Package and Source Folder来保存我的junit测试时,我遇到了这个症状。测试将失败,因为getResourceAsStream返回null。

以下是修复方法:

在Eclipse Project Explorer视图中右键单击该类(在我的示例中,是新的junit测试类)

构建路径 - >配置构建路径 - > Java构建路径 - >来源标签 - >添加文件夹

选择包含文件的文件夹。

答案 2 :(得分:4)

有时您需要明确告诉eclipse要从源文件夹复制到分发(类)文件夹的文件类型。

我有Eclipse SDK,版本:3.7.1,构建ID:M20110909-1335,Indigo并在此 我做了以下更改。

项目 - >属性 - > Java构建路径 - >来源(标签) - >包含(列表项) - >编辑(按钮)将* / .txt添加到现有的* / .java中。

答案 3 :(得分:0)

另外,请确保您的文件与偏好> Java>编译器>构建> OutputFolder>过滤资源的任何模式都不匹配。

例如,如果您在该字段中设置 * .txt ,则不会将test.txt提供给构建输出。

答案 4 :(得分:0)

将my / resources /文件夹放入我的/ bin /文件夹解决了这个问题。

答案 5 :(得分:0)

老问题,但我遇到了同样的问题,没有一个答案适合我(或者我不理解它们)。

在Eclipse中,刷新项目目录,使Eclipse知道已将新文件添加到资源中。为此,右键单击包浏览器视图中的项目(最顶层)目录,然后单击“刷新”。如果您从外部eclipse中编辑现有资源文件,则相同:刷新以使eclipse知道编辑。