2010-10-31 51 views
18

目前我正在一个团队中工作,一起玩!框架应用。
我必须实现的下一个用户故事需要一些不同的文件修改,例如将文件移动到定义的目录。如何找到播放框架应用程序的绝对路径?

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

我该如何获得剧本的绝对路径!应用程序吗? 是否有任何方法?

+3

“目前,我正在一个团队中开发一个play!框架应用程序。” 酷! – sirmak 2010-11-01 17:52:06

回答

18

Play提供的应用程序路径属性:

String projectRoot = Play.applicationPath; 

这将会给你玩的是运行的目录。

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

Application.conf:

my.file.path=/tmp/whatever 

代码:

String projectRoot = Play.configuration.getProperty("my.file.path"); 
+5

这不适用于我正在使用的Play版本(2.1.1)。看起来像获取应用程序路径的正确方法是:String path = Play.application()。path()。getPath(); – JDischler 2013-05-10 15:35:43

+0

这适用于我Play上的版本1.2.4 – Elijah 2015-06-02 12:10:07

2

这些都不在我的版本的游戏工作,所以我用这个来代替: 播放。当前()。路径()。getAbsolutePath()

9

从play 2.0开始:play.Play.applica ()。path()。getAbsolutePath()

9

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

请问您能在哪里以及如何注入这个环境? – JulienD 2016-08-24 11:53:55

+0

@JulienD,最好的方法(可能取决于你的应用程序需求和设计)将会在你的模块中使用'play.Environment'。请看这个例子:https://www.playframework.com/documentation/2.5.x/JavaDependencyInjection#Configurable-bindings-你可以在创建你的bean /服务时使用环境实例。 – Tom 2016-08-25 10:05:06

相关问题