Как использовать параметр относительного пути с исполняемым jar-файлом Spring Boot / picocli? - PullRequest
1 голос
/ 05 августа 2020

У меня есть приложение командной строки, которое использует Spring Boot и picocli. Можно передать параметр, который является путем, например, myApp.jar /path/to/file, и он будет что-то делать с этим файлом. Я хочу использовать это приложение для всей системы, поэтому я поместил исполняемый файл .jar в /usr/bin/ и переименовал его в myApp.

Теперь, когда я использую его с абсолютным путем: myApp /home/user/file it работает нормально, но я хочу передать относительный путь, например, когда я нахожусь в /home/user/, я хочу, чтобы это было myApp ./file. Проблема в том, что с относительным путем он пытается использовать /usr/bin/file вместо /home/user/file.

Временное решение, которое я использую в настоящее время, выглядит примерно так: myApp $(pwd)/file.

У вас есть идея как это исправить?

1 Ответ

1 голос
/ 05 августа 2020

Хорошо, поэтому мне удалось решить проблему, используя настраиваемый сценарий запуска для Spring Boot

Я скопировал исходные коды и удалил соответствующие строки для смены рабочего каталога:

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

Я не очень доволен этим решением, но оно лучше, чем ничего.

...