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

StackOverflow https://stackoverflow.com/questions/4064563

  •  27-09-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

Игра имеет свойство PATCE приложения:

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);

С игры 2.0: Play.Play.Application (). Путь (). GetabsolutePath ()

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top