###前提・実現したいこと
前提としてプロジェクトのパッケージ配置が以下のようになっているものとします
sample
├resources
│└img1.png
├packA
│└Source.java(public class Source{})
├Main.java(public class Main{})
└img2.png
このとき、Sourceクラスからの相対パスでimg1.pngをgetClass().getResource()で参照する方法が知りたいです
Mainクラスからの相対パスでgetClass().getResource()で参照できることは確認しました
Sourceクラスからの相対パスで参照しようとするとIDEのデバッガ上(パスを確認すると普通のファイルパス)ではきちんと動きますが、
ビルドしてjarをたたくと(パスを確認すると ~.jar!\~ になるような)getResource()でnullが帰るようです
実現したいことはimg1.pngを参照することなのですが、img2.pngを参照しようとしても同じエラーが出ることを確認しました
なにか方法があれば教えてください
###該当のソースコード
java
1public class Source{ 2 public Source(){ 3 URL url = Main.class.getResource("resources/img1.png").toString();//これで参照できることは確認しました 4 } 5}
↑だと正常に動くのですが、
java
1public class Source{ 2 public Source(){ 3 URL url=getClass().getResource("../resources/img1.png").toString();//直接参照したい 4 } 5}
↑だとgetResource()でnullが帰るようです
###試したこと
getResource()の引数は思いつく限り試しました
"./../resources/img1.png",
"/../resources/img1.png",
"../resources/img1.png" など
###補足情報(言語/FW/ツール等のバージョンなど)
jdk 1.8.0_112
IntelliJ IDEA Community 2017 2.1
あなたの回答
tips
プレビュー