在Java中存储电子邮件附件的文件的位置

时间:2015-06-01 21:51:39

标签: java relative-path filepath email-attachments

在我的Java webapp中,我有一个发送电子邮件的自动脚本,在这封电子邮件中我需要附加一个文件。我目前在公共“资产”文件夹中有它但是我无法在不使用绝对路径的情况下传入我的Java代码中的文件路径(我的开发服务器是我的本地工作站,因此路径与此完全不同)。

有没有办法使用网址(http://domain.com/assets/file.pdf)或相对路径附加文件?我根据Java的当前工作目录是“C:\ Users \ USERNAME \ GlassFish_Server \ glassfish \ domains \ domain1 \”,但显然没有任何有用的东西 - 没有Java类,没有Web文件,没有。或者我应该将文件放在其他地方..就像发送电子邮件的脚本所在的文件夹一样,这似乎是错误的。

1 个答案:

答案 0 :(得分:0)

这很大程度上取决于您的部署。

正如@Jakub所说:如果你可以安排文件在你的应用程序的类路径上,你可以使用ClassLoader.getResourceAsStream(...)来检索你的文件内容(javadoc相当不错;它& #39;有助于知道你可以使用this.getClass()。getClassloader())来获取一个类加载器。

您可以使用配置文件(以及任何良好的配置管理库)来指定资源文件的绝对路径。

如果您知道文件相对于执行路径的位置,您可以说"新文件("")。getAbsolutePath()"然后追加您的相对路径。