こんばんはエンジニアの眠れない夜です。
.jar ファイルに書き出してプログラムを実行すると、プロジェクト内に保存しているファイルを読み込めなくて困ったことはありませんか?
例えば認証用のファイルをプログラムで読み込んで、実行するような場面です。
開発環境で実行する時には何の問題もないのですが、.jarファイルに書き出すと参照先のファイルが.jarファイルの中に入ってしまいます。
「これってどうやって参照すればいいんだ?」となるわけですが、今回はそんな問題を簡単に解決するための関数を用意しました。
※ 間違っているところなどありましたらご指摘くださいm(_ _)m
.jarファイル内のファイルの絶対パスを返す関数
getAbsolutePath()
が書かれているクラスから見た時に欲しいファイルがどこにあるかを相対パスで指定します。
Utility.java
と同じ場所にある file.txt
というファイルの絶対パスを知りたい場合は getAbsolutePath("./file.txt")
と入力します。これで、file.txt の絶対パスを取得できるので、後は煮るなり焼くなり自由にしてください。
その他にも絶対パスでの指定もできます。絶対パスで指定する時は
/Users/user/PROJECT_NAME/target/classes
から見てどこにファイルがあるかを指定します。
com.example
というパッケージの中に file.txt
がある場合は /com/example/file.txt
と指定すればOKです。
まとめ
- `getAbsolutePath()`を使って欲しいファイルの絶対パスを取得できる。
- `getAbsolutePath()` はクラスから見たときの相対パスで取得できる。
- `getAbsolutePath()` は`PROJECT_NAME/target/classes` から見たときの絶対パスで指定もできる。
これであなたの問題が解決しますように!
コメントを残す