如何将相对路径参数与 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"
}
我对这个解决方案不是很满意,但总比没有好。
我有一个命令行应用程序,它使用 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"
}
我对这个解决方案不是很满意,但总比没有好。