gpt4 book ai didi

java - 使用 Spring 与 jar 相关的文件

转载 作者:行者123 更新时间:2023-11-30 07:41:29 24 4
gpt4 key购买 nike

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

my.file.location=file:myDir/myFileName

在代码中我尝试获取如下文件:

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

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

我不能将此文件放在类路径上,它必须位于 jar 文件外部。

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

最佳答案

我相信这与 Spring 无关,对吧?您只想加载配置文件,该文件位于您的应用程序内部,解压后,以便用户可以修改它,好吗?

首先,您可以尝试始终设置工作目录,我认为这是更“标准”的解决方案。在 Windows 中,您可以创建一个链接,指定开始于部分并包含 jar 文件(或 batcmd,无论什么)。

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

URI path = MySpringBean.class.getProtectionDomain().getCodeSource().getLocation().toURI();
File myfileLocation = new File(new File(path).getParent(), "/myDir/jdbc.properties");

关于java - 使用 Spring 与 jar 相关的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34634085/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com