0

我阅读了几个文件:

new File(Thread.currentThread().getContextClassLoader().getResource("Configuration.txt")).getFile());

这适用于构建项目和 mvn 测试,但是一旦我尝试执行 jar 文件,这些调用就为空。这些文件实际存在于 jar 中。这里有什么问题?

我用于构建 jar 的 pom-part(我现在没有相关的依赖项):

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>2.4</version>
  <configuration>
  <archive>
      <manifest>
        <addClasspath>true</addClasspath>
        <mainClass>path.to.mainclass</mainClass>
      </manifest>
    </archive>
  </configuration>
</plugin>

资源文件位于标准文件夹 src/main/resources

4

1 回答 1

0

当您mvn test从 IDE 使用或运行测试时,您可以从文件系统访问物理文件,但是当您使用打包资源的运行 jar 时,您不能使用File类或getFile()方法。您应该使用getClass().getResource()call 或getClass().getResourceAsStream().

于 2013-05-11T10:15:24.610 回答