【发布时间】:2013-02-05 02:55:18
【问题描述】:
我的maven项目的pom.xml如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</project>
在 src/main/resources 目录中,我有一个名为 test.txt 的文件。 在 src/main/java 目录中,我有一个包含以下行的类:
System.out.println(this.getClass().getResourceAsStream("test"));
当这行代码在 Eclipse 中运行时,我得到输出
java.io.BufferedInputStream@1cd2e5f
当我将项目导出为 .jar 并运行它时,我会得到输出
null
我是不是配置有问题?
【问题讨论】:
-
这个类是单元测试还是真正的生产类?我假设一个生产类。比您必须将 getResourcesAsStream("test") 更改为 getResourcesAsStream("/test");
-
@khmarbaise 你是对的......但为什么它与 eclipse 一起工作???
-
这个测试资源是在 src/main/resources 文件夹中还是在 src/test/resources 文件夹中,有没有包名?此外,您不需要配置 src/main/java 或 src/main/resources 文件夹,因为它们在 maven 中是默认的。