親牛の開発日記

ぼけ防止するため、開発メモを残そう

Javaアプリのリソースファイル(データ)を取得する際にリソースパスについ

・リソースの取得

すべてのJavaアプリに対し、下記3つのリソースがあれば

src

  main

     java

       com

          pkg

             Main.java

             main.properties

     resources

        template

            1.html

        my.properties

 

それぞれの取得に以下のパスで行う。

・main.properties

ClassLoader.getSystemResource("com/pkg/main.properties")

・1.html

ClassLoader.getSystemResource("template/1.html")

・my.properties

ClassLoader.getSystemResource("my.properties")

ではなぜなのか?実際にコンパイルしたフォルダの構成にかかってる

上記のソースフォルダツリーであれば、コンパイル後に以下のアウトプットをできる

classes

    com

      pkg

         Main.class

         main.properties

    template

        1.html

    my.properties

つまり、リソースのパスはコンパイル後の場所と関係していることが分かりました。

 

 2018/06/11 IntelliJの中に、リソースフォルダの追加方法

stackoverflow.com