Spring boot 如何在Spring Boot/picocli可执行jar中使用相对路径参数?

Spring boot 如何在Spring Boot/picocli可执行jar中使用相对路径参数?,spring-boot,relative-path,executable-jar,picocli,Spring Boot,Relative Path,Executable Jar,Picocli,我有一个命令行应用程序,它使用Spring Boot和picocli。 可以传递参数,该参数是一个路径,例如myApp.jar/path/to/file,它将对该文件进行处理。 我想在系统范围内使用此应用程序,因此我将可执行文件.jar放在/usr/bin/中,并将其重命名为myApp 现在,当我将它与绝对路径一起使用时:myApp/home/user/file工作正常,但我希望传递相对路径,例如,当我在/home/user/中时,我希望它是myApp./file。 问题在于,对于相对路径,它试

我有一个命令行应用程序,它使用Spring Boot和picocli。 可以传递参数,该参数是一个路径,例如
myApp.jar/path/to/file
,它将对该文件进行处理。 我想在系统范围内使用此应用程序,因此我将可执行文件
.jar
放在
/usr/bin/
中,并将其重命名为
myApp

现在,当我将它与绝对路径一起使用时:
myApp/home/user/file
工作正常,但我希望传递相对路径,例如,当我在
/home/user/
中时,我希望它是
myApp./file
。 问题在于,对于相对路径,它试图使用
/usr/bin/file
而不是
/home/user/file

我目前使用的解决方法如下:
myApp$(pwd)/file


你知道如何解决这个问题吗?

好的,所以我通过使用

我已复制并删除了负责工作目录更改的行:

run() {
  pushd "$(dirname "$jarfile")" > /dev/null # <-- removed
  "$javaexe" "${arguments[@]}"
  result=$?
  popd > /dev/null # <-- removed
  return "$result"
}
run(){
pushd“$(dirname“$jarfile”)”>/dev/null#/dev/null#