LoginSignup
0
0

More than 3 years have passed since last update.

[playframework]ファイルをプロジェクト内に含めてアプリケーションで読み込む方法

Posted at

予想外に時間を要したのでメモ。

やりたかったことは、PDF作成時に利用する日本語フォント用ファイル(*.ttf)の読み込み。
(フォントファイルに限らずtxtファイルでもxmlファイルでも同様です。)

アプリケーションを実行するサーバのファイルシステムに配置して絶対パスで読み込む方法は避けたい(効率が悪い・不具合に発生しやすい)ので、ファイルをプロジェクトに含めたい。

様々な方法があると思いますが、一番簡単な方法としてはconfディレクトリの下に読み込みたいファイルを配置すること。

[project directory]
 |
 +--app
 |  |
 |  +-- controller
 |  |
 |  +-- views
 |
 +--conf
    |
    +-- *.ttf  ← ここ

こうすることでClassLoader.GetReousrce()メソッドで取得できます。

File file = new File(getClass().getClassLoader().getResource(ファイル名).getFile());

以下の方法はgetReourse()メソッドで取得できませんでした。(結果がNULL)

  • プロジェクトディレクトリの下にresourcesディレクトリを作成してその下にファイルを配置。ビルド対象にする
  • appディレクトリ下にresourcesディレクトリを作成してその下にファイルを配置。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0