Java 如何找到Play Framework应用程序的绝对路径?

Java 如何找到Play Framework应用程序的绝对路径?,java,scala,playframework,Java,Scala,Playframework,现在我正在和一支球队一起打球!框架应用程序。在下一个用户故事中,我必须实现一些不同的文件修改,例如将文件移动到定义的目录 因为我们在不同的平台上工作,所以我并不总是确定应用程序是否有正确的路径。所以我想使用app目录的绝对路径 我怎样才能得到一个剧本的绝对路径!应用程序?有什么方法可以解决这个问题吗?这个答案只适用于v2之前较旧版本的Play框架。 播放具有应用程序路径属性: String projectRoot = Play.applicationPath; 这将为您提供运行Play的目录

现在我正在和一支球队一起打球!框架应用程序。在下一个用户故事中,我必须实现一些不同的文件修改,例如将文件移动到定义的目录

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


我怎样才能得到一个剧本的绝对路径!应用程序?有什么方法可以解决这个问题吗?

这个答案只适用于v2之前较旧版本的Play框架。

播放具有应用程序路径属性:

String projectRoot = Play.applicationPath;
这将为您提供运行Play的目录

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

Application.conf:

代码:


这两种方法都不适用于我的游戏版本,所以我改为:
Play.current().path().getAbsolutePath()

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

自版本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);

“目前我正在一个团队中开发play!framework应用程序。”酷!这在我使用的Play版本(2.1.1)上不起作用。看起来获取应用程序路径的正确方法是:String path=Play.application().path().getPath();请说明在何处以及如何注入此环境好吗?@JulienD,最好的方法(可能取决于您的应用程序需求和设计)是在模块中使用
play.Environment
。请看这个例子:-您可以在创建bean/服务等时使用environment Instance。
public File rootPath();
public File getFile(String relativePath);
public URL resource(String relativePath);
public InputStream resourceAsStream(String relativePath);