Gradleプロジェクトのリソースフォルダからファイルをロードできない理由を知りたいと思いました。私のテスト/ javaディレクトリにgetResourcesAsStreamはjUnitからファイルをロードできません
/src
/main
/java
/datasets
/IrisDataReader.java
/resources
/datasets
/Iris.csv
/test
/java
/resources
/datasets
/Iris.csv
が、私はプログラムにIris.csvを読むためにIrisDataReaderを使用するいくつかのテストを実行している:
私のプロジェクトには、次のフォルダ構造を有しています。
以下は、NULLポインタ例外を生成します。
InputStream inputStream = IrisDataReader.class.getResourceAsStream("/datasets/Iris.csv");
建てた場合、Gradleのは
次のファイル構造を作成し/build
/classes
/main
/datasets
/IrisDataReader.class
/resources
/main
/datasets
/Iris.csv
ここで奇妙な部分です:私は/ビルド/クラス/メインに構築/リソース/メイン/データセット/ Iris.csvをコピーする場合 /datasets /の場合、クラスローダーはファイルを正常にロードできます。何か案は?
私はgradleのデフォルト設定を変更したり、ビルドタスクを追加したりしていません。
コードをどのように実行していますか?クラスパスとは何ですか? – Andreas
私はIntelliJのguiでJUnitを実行しています。モジュールのクラスパスを使用するように設定されています(プロジェクトには複数のモジュールがあり、上記のソースツリーはモジュールの1つです) – brainmurphy1