Подтвердить что ты не робот

Как найти абсолютный путь к приложению Play Framework?

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

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

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

4b9b3361

Ответ 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.()