gpt4 book ai didi

java - 打包后的 Spring Boot 应用程序的相对路径在哪里

转载 作者:行者123 更新时间:2023-12-02 02:48:40 25 4
gpt4 key购买 nike

如何/在哪里设置打包(jar)Spring Boot jar应用程序的相对路径位置?

以下是我的 IDE (IntelliJ) 中的工作原理。

我的 application.properties 文件中有以下属性。

converter.output=upload-dir/output/
converter.input=upload-dir

我有一个 Java 类来控制我的属性。

@Component
@ConfigurationProperties("converter")
public class ConverterProperties {

//getters
//setters

}

我在 IDE 中有以下目录结构。

src/
target/
upload-dir/
upload-dir/output/
pom.xml
README.txt

但是,我想知道当我生成 jar 并从文件夹运行它时,我的 upload-dir 和 upload-dir/output 文件夹在哪里?我尝试将文件夹放在与 jar 相同的位置

C:\app\app.jar
C:\app\upload-dir\
C:\app\upload-dir\output\

但是没有骰子。我根据此文档设置@ConfigurationProperties。 https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html ,但我似乎找不到任何地方谈论打包的 jar 相对路径。

最佳答案

典型的 Spring Boot 应用程序会在信息级别的第一行显示您要查找的一些信息(在 {host} 上启动应用程序 {name},PID 为 1234({jarpath} 由 {workdir} 中的 {user} 启动) )

查看 StartupInfoLogger 中的源代码,您似乎需要使用 ApplicationHome 帮助程序类(在包 org.springframework.boot 中)才能获取正在运行的 Spring Boot 应用程序的 JAR 文件的绝对路径。

下面是一个 Java 代码示例,用于检索 jar 文件的位置以及包含 jar 文件的目录。然后用它来创建 uploadDir 文件(假设它是 jar 目录的子目录)

ApplicationHome home = new ApplicationHome(this.getClass());
File jarFile = home.getSource();
File jarDir = home.getDir();
File uploadDir = new File(jarDir, "upload-dir");

您可能希望从 Spring Boot 应用程序中运行的应用程序类之一运行它。看起来它使用传递给 ApplicationHome 构造函数的类来查找包含该类的 jar。

关于java - 打包后的 Spring Boot 应用程序的相对路径在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44189902/

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