使用Spring相对于jar的文件

时间:2016-01-06 13:14:32

标签: java spring file

我在Java控制台应用程序上工作。我的application.properties文件中有一个属性,它包含另一个文件名作为属性的值,如

my.file.location=file:myDir/myFileName

在代码中我尝试获取这样的文件:

@Value("${my.file.location}")
private File myfileLocation;

如果我从包含jar文件的目录启动应用程序,则解析该文件,但是当我从其他位置运行我的应用程序时,文件位置无效。

我不能在classpath上拥有这个文件,它必须在jar文件的外部。

如何使文件路径相对于我的jar文件而不是当前工作目录?

1 个答案:

答案 0 :(得分:1)

我相信这与Spring无关吗?您只想加载配置文件,即在应用程序内部,解压缩,以便用户可以修改它,好吗?

首先,您可以尝试始终设置工作目录,我相信这是"标准" 解决方案。在Windows中,您可以创建链接,指定开始于部分,并包含jar文件的路径(或bat或{{ 1}},等等。

如果您坚持使用 jar路径,则可以使用How to get the path of a running JAR file解决方案。请注意,必须从文件系统加载jar:

cmd