プレイフレームワークアプリへの絶対的なパスを見つけるにはどうすればよいですか?
-
27-09-2019 - |
質問
現時点では、私はプレーでチームと仕事をしています!フレームワークアプリ。次のユーザーストーリーを使用すると、ファイルを定義されたディレクトリに移動するなど、いくつかの異なるファイル変更を実装する必要があります。
私たちはさまざまなプラットフォームに取り組んでいるので、アプリに正しいパスがあるかどうかは必ずしも確信が持てません。だから私はアプリディレクトリの絶対的なパスで作業したいと思っています。
プレイの絶対的なパスを取得するにはどうすればよいですか!アプリ?この方法はありますか?
解決
この回答は、V2の前のPlay Frameworkの古いバージョンにのみ適用されます。
再生にはアプリケーションパスプロパティがあります。
String projectRoot = Play.applicationPath;
これにより、再生が実行されているディレクトリが表示されます。
より良い練習は、プロジェクトインストールディレクトリの外にディレクトリを移動し、そのパスをあなたの中に配置することだと思います application.conf
プロパティとして。その後、必要に応じて取得します。例えば:
Application.Conf:
my.file.path=/tmp/whatever
コード:
String projectRoot = Play.configuration.getProperty("my.file.path");
他のヒント
バージョン以来 2.5.0, play.Play
クラスは非推奨です。注射することをお勧めします play.Environment
次のようにこの方法を使用します。
public File rootPath();
play.Environment
Singletonには、相対パスごとにファイルを提供する非常に便利な方法も含まれています。
public File getFile(String relativePath);
public URL resource(String relativePath);
public InputStream resourceAsStream(String relativePath);
Play 2.0:play.play.application()。path()。getabsolutepath()
どちらも私のバージョンのプレイに取り組んでいなかったので、代わりにこれを使用しました:play.current()。path()。getabsolutepath()