Как найти абсолютный путь к приложению Play Framework?
На данный момент я работаю с командой на Play! Рамочное приложение. Со следующей пользовательской историей я должен реализовать некоторые другие модификации файлов, такие как перемещение файла в определенный каталог.
Поскольку мы работаем на разных платформах, я не всегда уверен, что приложение имеет правильный путь. Поэтому я хочу работать с абсолютным путем к каталогу приложения.
Как мне получить абсолютный путь игры! приложение? Есть ли способ для этого?
Ответы
Ответ 1
Этот ответ относится только к более старым версиям Play Framework, до v2.
Play имеет свойство пути к приложению:
String projectRoot = Play.applicationPath;
Это даст вам каталог, из которого запущен Play.
Я думаю, что лучшей практикой является перемещение каталога за пределы каталога установки вашего проекта и размещение пути к нему в вашем application.conf
в качестве свойства. Затем вы получите его при необходимости. Например:
Application.conf:
my.file.path=/tmp/whatever
Код:
String projectRoot = Play.configuration.getProperty("my.file.path");
Ответ 2
Поскольку версия 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);
Ответ 3
Как в игре 2.0: play.Play.application(). path(). getAbsolutePath()
Ответ 4
Ни один из тех, кто работал над моей версией игры, поэтому использовал вместо этого:
Play.current(). Путь() getAbsolutePath.()