Spring boot CLI не работает на Git Bash в Windows

Spring boot CLI отказывается работать в окне Git bash. Я добавил его в путь в Windows и работает из cmd. Ошибка в git bash:

$ spring Error: Could not find or load main class org.springframework.boot.loader.JarLauncher


person ares    schedule 08.08.2017    source источник


Ответы (2)


Проблема возникает из-за того, что при попытке запустить jar Spring Boot CLI сценарий использует неверный путь к файлу для JAVA_HOME и для Classpath. При просмотре каталога bin установки spring вы можете увидеть два скрипта:

весна
spring.bat

Сценарий spring.bat выполняется при запуске из Windows CMD и будет работать нормально, однако при запуске в git bash будет использоваться сценарий spring. Этот сценарий попытается исправить проблему, используя cygpath, чтобы убедиться, что пути к файлам указаны в формате unix. Он делает это только тогда, когда определяет, что работает в среде Cygwin, но не делает этого при запуске из git bash. В результате пути к файлам становятся неправильными.

К счастью, есть хак, который может решить эту проблему, если вы заинтересованы. Закомментируйте оператор if в строках с 17 по 19 и добавьте его содержимое в виде отдельной строки, например так:

# if $cygwin ; then
#   [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
# fi
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`

И снова для другого оператора if в строке 92:

# if $cygwin; then
#   SPRING_HOME=`cygpath --path --mixed "$SPRING_HOME"`
#   CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
# fi

SPRING_HOME=`cygpath --path --mixed "$SPRING_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`

Теперь вы сможете запускать CLI Spring Boot из git bash.

person Dean    schedule 10.12.2017

У меня была такая же проблема при запуске команды «spring» в git bash, я обнаружил, что моя весна была установлена ​​​​на диске D (в то время как Java была установлена ​​​​на диске C). При запуске команды «spring» в git bash в каталоге диска C я получаю указанную выше ошибку. Если я переключу каталог на диск D в git bash и снова запущу команду «spring», это сработает.

person Johnathan Wan    schedule 21.09.2018