Spring boot 如何在Spring Boot/picocli可执行jar中使用相对路径参数?
我有一个命令行应用程序,它使用Spring Boot和picocli。 可以传递参数,该参数是一个路径,例如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。 问题在于,对于相对路径,它试
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#