0

私はいくつかのファイルを読みました:

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

ビルドされたプロジェクトと mvn テストでは問題なく動作しますが、jar ファイルを実行しようとすると、これらの呼び出しは null になります。ファイルは 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

IDE からテストを使用mvn testまたは実行する場合、ファイル システムから物理ファイルにアクセスしますが、パッケージ化されたリソースで実行中の jar を使用する場合、FileクラスまたはgetFile()メソッドを使用できません。getClass().getResource()call またはを使用する必要がありますgetClass().getResourceAsStream()

于 2013-05-11T10:15:24.610 に答える