Java 其中是打包的Spring引导应用程序的相对路径

Java 其中是打包的Spring引导应用程序的相对路径,java,spring,spring-boot,jar,Java,Spring,Spring Boot,Jar,如何/在何处设置打包(jar)Spring Boot jar应用程序的相对路径位置 以下是在我的IDE(IntelliJ)中工作的内容 我的application.properties文件中有以下属性 converter.output=upload-dir/output/ converter.input=upload-dir 我有一个Java类为我控制属性 @Component @ConfigurationProperties("converter") public class Convert

如何/在何处设置打包(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并从一个文件夹运行它时,我的上传目录和上传目录/输出文件夹会在哪里?我试着把文件夹放在与jar相同的位置

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

但是没有骰子。我根据此文档设置@ConfigurationProperties,但是我似乎找不到任何关于打包jar相对路径的地方。

一个典型的spring启动应用程序在信息级别的第一行显示了您正在寻找的一些信息(使用PID 1234在{host}上启动应用程序{name}({jarpath}由{workdir}中的{user}启动)

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

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


您可能希望在spring boot应用程序中运行的某个应用程序类中运行该应用程序。它似乎使用传递给ApplicationHome构造函数的类来查找包含该类的jar。

典型的spring boot应用程序在中的第一行中显示您正在查找的一些信息fo级别(使用PID 1234在{host}上启动应用程序{name}({jarpath}由{workdir}中的{user}启动)

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

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


您可能希望在spring boot应用程序中运行的某个应用程序类中运行此应用程序。它似乎使用传递给ApplicationHome构造函数的类来查找包含该类的jar。

谢谢。这让我朝着正确的方向前进,并找到了最终的解决方案。谢谢。这让我走对了方向方向和最终解决方案。
ApplicationHome home = new ApplicationHome(this.getClass());
File jarFile = home.getSource();
File jarDir = home.getDir();
File uploadDir = new File(jarDir, "upload-dir");