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

发布于 2024-09-30 04:28:43 字数 173 浏览 2 评论 0原文

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

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

如何获取 Play! 的绝对路径应用程序?有没有办法呢?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

噩梦成真你也成魔 2024-10-07 04:28:43

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

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

String projectRoot = Play.applicationPath;

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

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

Application.conf:

my.file.path=/tmp/whatever

代码:

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

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");
故事和酒 2024-10-07 04:28:43

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

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 e.g.

public File getFile(String relativePath);
public URL resource(String relativePath);
public InputStream resourceAsStream(String relativePath);
凑诗 2024-10-07 04:28:43

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

As of play 2.0: play.Play.application().path().getAbsolutePath()

热血少△年 2024-10-07 04:28:43

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

Neither of those worked on my version of play, so I used this instead:
Play.current().path().getAbsolutePath()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文