1
我使用Java控制台应用程序。有一个在我的application.properties文件,其中包含另一个文件名作为属性的值的属性,如使用Spring相对于jar的文件
my.file.location=file:myDir/myFileName
在代码中,我试图让这样的文件:
@Value("${my.file.location}")
private File myfileLocation;
如果我从包含jar文件的目录启动应用程序,则该文件已解析,但是当我从其他位置运行我的应用程序时,文件位置无效。
我不能在classpath上有这个文件,它必须在jar文件的外部。
如何使文件路径相对于我的jar文件而不是当前的工作目录?
谢谢您提供的答案。我在想,如何使用相对于jar文件的@Value(“$ {my.file.location}”),所以这个问题真的与Spring相关。 – Michal
那么,你可以调用'myfileLocation.getPath()'获得相对路径,但是你仍然需要用完整路径创建新的'File'。如果你需要的话,你可以使用spring [SpEL](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html)来完成。 – vnov