如何将相对路径参数与 Spring Boot/picocli 可执行 jar 一起使用?

How to use relative-path-parameter with Spring Boot/picocli executable jar?

我有一个命令行应用程序,它使用 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.

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

好的,我已经通过 custom launch script for Spring Boot

设法解决了这个问题

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

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

我对这个解决方案不是很满意,但总比没有好。