.jarファイル内のファイルにアクセスする方法

【.jarファイル】 プロジェクト内の ファイルの絶対パスを取得

こんばんはエンジニアの眠れない夜です。

.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` から見たときの絶対パスで指定もできる。

これであなたの問題が解決しますように!

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください