目前,我正在与一个团队合作开发 Play!框架应用程序。在下一个用户故事中,我必须实现一些不同的文件修改,例如将文件移动到定义的目录。
因为我们在不同的平台上工作,所以我并不总是确定应用程序是否有正确的路径。所以我想使用应用程序目录的绝对路径。
如何获得 Play 的绝对路径!应用程序?有办法吗?
目前,我正在与一个团队合作开发 Play!框架应用程序。在下一个用户故事中,我必须实现一些不同的文件修改,例如将文件移动到定义的目录。
因为我们在不同的平台上工作,所以我并不总是确定应用程序是否有正确的路径。所以我想使用应用程序目录的绝对路径。
如何获得 Play 的绝对路径!应用程序?有办法吗?
此答案仅适用于 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");
从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);
从播放 2.0 开始: play.Play.application().path().getAbsolutePath()
这些都不适用于我的游戏版本,所以我改用了这个: Play.current().path().getAbsolutePath()