如何找到播放框架应用程序的绝对路径?

Tob*_*mid 20 java scala playframework

目前我正在一个团队中工作!框架应用程序
我必须实现的下一个用户故事需要一些不同的文件修改,例如将文件移动到定义的目录.

因为我们在不同的平台上工作,所以我并不总是确定应用程序是否具有正确的路径.所以我想使用app目录的绝对路径.

我如何获得游戏的绝对路径!应用程序吗?有方法吗?

Dam*_*amo 18

Play有一个应用程序路径属性:

String projectRoot = Play.applicationPath;
Run Code Online (Sandbox Code Playgroud)

这将为您提供Play正在运行的目录.

我认为更好的做法是将目录移到项目安装目录之外,并将其路径放在您application.conf的属性中.然后在需要时检索它.例如:

Application.conf:

my.file.path=/tmp/whatever
Run Code Online (Sandbox Code Playgroud)

码:

String projectRoot = Play.configuration.getProperty("my.file.path");
Run Code Online (Sandbox Code Playgroud)

  • 这不适用于我正在使用的Play版本(2.1.1).看起来获取应用程序路径的正确方法是:String path = Play.application().path().getPath(); (5认同)

Tom*_*Tom 11

从版本2.5.0开始,play.Play不推荐使用类.建议注入play.Environment并使用如下方法:

public File rootPath();
Run Code Online (Sandbox Code Playgroud)

play.Environment单也包含了一些非常方便的方法,这种方法相对路径如提供的文件

public File getFile(String relativePath);
public URL resource(String relativePath);
public InputStream resourceAsStream(String relativePath);
Run Code Online (Sandbox Code Playgroud)


use*_*349 10

截至播放2.0:play.Play.application().path().getAbsolutePath()