Java:jarから相対パスでリソースを読み込む+特定パスの特定拡張子のファイルをゲットする
次のような構成で実行可能jarのアプリリリースの準備を急ピッチで進めているが、dataとかにアクセスしようとして少しだけハマったのでメモ。
Root <DIR> + 起動.bat +bin <DIR> + 本体.jar +config <DIR> + *.proprties +data <DIR> + *.txt +media <DIR> + *.wav
まず、結論から言うとdata/*.txtとかmedia/*.wavとかだけ指定すればいいらしい。
てっきにbinにjarしまったから../data/とかにするのかと思ったらはまった。
例えばdataの*.txtだけをjarから拾いたかったら、
public static void main(String[] args) { aho("data/", ".txt"); } protected static void aho(String path, String ext) { File dir = new File(path); String[] files = dir.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.endsWith(ext); } }); for (String file : files) { System.out.println(file); } }
みたいに書けばよさそう。
気分がstatic