20

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

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

如何获得 Play 的绝对路径!应用程序?有办法吗?

4

4 回答 4

18

此答案仅适用于 v2 之前的旧版本 Play Framework。

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

String projectRoot = Play.applicationPath;

这将为您提供运行 Play 的目录。

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

应用程序.conf:

my.file.path=/tmp/whatever

代码:

String projectRoot = Play.configuration.getProperty("my.file.path");
于 2010-11-01T04:43:06.697 回答
12

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);
于 2016-07-15T00:21:26.257 回答
10

从播放 2.0 开始: play.Play.application().path().getAbsolutePath()

于 2013-12-10T12:13:28.503 回答
3

这些都不适用于我的游戏版本,所以我改用了这个: Play.current().path().getAbsolutePath()

于 2013-08-08T16:06:05.063 回答