简体   繁体   中英

How do I find the absolute path to a Play Framework app?

At the moment I'm working with a team on a Play! Framework app. With the next user story, I have to implement some different file modifications, such as moving a file to a defined directory.

Because we are working on different platforms, I'm not always really sure if the app has the right path. So I want to work with a absolute path of the app directory.

How do I get the absolute path of a Play! app? Is there a method for this?

This answer applies only to older versions of the Play Framework, before v2.

Play has an application path property:

String projectRoot = Play.applicationPath;

This will give you the directory that Play is running from.

I think a better practice is moving the directory outside of your project install directory and placing the path to it in your application.conf as a property. You then retrieve it when needed. For example:

Application.conf:

my.file.path=/tmp/whatever

Code:

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

Since version 2.5.0 , play.Play class is deprecated. It is recommended to inject play.Environment and use the method as follows:

public File rootPath();

The play.Environment singleton also contains some very handy method, which provide files by relative path eg

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()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM