Как найти абсолютный путь к приложению Play Framework? - PullRequest
20 голосов
/ 31 октября 2010

В данный момент я работаю с командой над Play!Рамочное приложение.В следующей пользовательской истории я должен реализовать некоторые другие модификации файлов, такие как перемещение файла в определенный каталог.

Поскольку мы работаем на разных платформах, я не всегда уверен, что приложениеправильный путь.Поэтому я хочу работать с абсолютным путем к каталогу приложения.

Как мне получить абсолютный путь к Play!приложение?Есть ли способ для этого?

Ответы [ 4 ]

18 голосов
/ 01 ноября 2010

Этот ответ применим только к более старым версиям Play Framework до версии 2.

Play имеет свойство пути к приложению:

String projectRoot = Play.applicationPath;

Это даст вам каталог, из которого запущен Play.

Я думаю, что лучшей практикой является перемещение каталога за пределы каталога установки вашего проекта и размещение пути к нему в вашем application.conf в качестве свойства. Затем вы получите его при необходимости. Например:

Application.conf:

my.file.path=/tmp/whatever

Код:

String projectRoot = Play.configuration.getProperty("my.file.path");
11 голосов
/ 15 июля 2016

Начиная с версии 2.5.0 , класс play.Play устарел. Рекомендуется ввести play.Environment и использовать метод следующим образом:

public File rootPath();

Синглтон play.Environment также содержит несколько очень удобных методов, которые предоставляют файлы по относительному пути, например,

public File getFile(String relativePath);
public URL resource(String relativePath);
public InputStream resourceAsStream(String relativePath);
10 голосов
/ 10 декабря 2013

Начиная с игры 2.0: play.Play.application (). Path (). GetAbsolutePath ()

3 голосов
/ 08 августа 2013

Ни одна из них не работала над моей версией игры, поэтому я использовал это: Play.current (). Path (). GetAbsolutePath ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...