Spring 引导 CLI 在 Git Bash 和 windows 上不起作用
Spring boot CLI doesn't work on Git Bash on windows
Spring 启动 CLI 拒绝在 Git bash window 上 运行。我已将它添加到 windows 中的路径并从 cmd 运行。 git bash 中的错误是:
$ spring
Error: Could not find or load main class org.springframework.boot.loader.JarLauncher
问题的发生是因为在尝试 运行 Spring Boot CLI jar 时,脚本使用了 JAVA_HOME 和类路径的格式错误的文件路径。查看 spring 安装的 bin 目录时,您可以看到两个脚本:
spring
spring.bat
当您从 windows CMD 运行 时执行 spring.bat 脚本并且可以正常工作,但是当 运行ning 在 git bash 它将使用 spring 脚本。此脚本将尝试使用 cygpath
来更正此问题,以确保文件路径为 unix 格式。它仅在确定它在 Cygwin 环境中 运行ning 时执行此操作,但在 运行ning 从 git bash。结果文件路径变得畸形。
幸运的是,如果您有兴趣,可以使用 hack 解决此问题。注释掉第 17 到 19 行的 if
语句,并将其内容添加为单独的一行,如下所示:
# if $cygwin ; then
# [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
# fi
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
第 92 行的另一个 if
语句:
# 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"`
您现在可以从 git bash 运行 Spring 启动 CLI。
我在 运行 在 git bash 中使用 "spring" 命令时遇到了同样的问题,我发现我的 spring 安装在 D 驱动器上(而 Java 安装在 C 盘上)。当运行在C盘目录gitbash中执行"spring"命令时,会出现上述错误。如果我在gitbash和运行中再次将目录切换到D盘"spring"命令,它就可以了。
Spring 启动 CLI 拒绝在 Git bash window 上 运行。我已将它添加到 windows 中的路径并从 cmd 运行。 git bash 中的错误是:
$ spring
Error: Could not find or load main class org.springframework.boot.loader.JarLauncher
问题的发生是因为在尝试 运行 Spring Boot CLI jar 时,脚本使用了 JAVA_HOME 和类路径的格式错误的文件路径。查看 spring 安装的 bin 目录时,您可以看到两个脚本:
spring
spring.bat
当您从 windows CMD 运行 时执行 spring.bat 脚本并且可以正常工作,但是当 运行ning 在 git bash 它将使用 spring 脚本。此脚本将尝试使用 cygpath
来更正此问题,以确保文件路径为 unix 格式。它仅在确定它在 Cygwin 环境中 运行ning 时执行此操作,但在 运行ning 从 git bash。结果文件路径变得畸形。
幸运的是,如果您有兴趣,可以使用 hack 解决此问题。注释掉第 17 到 19 行的 if
语句,并将其内容添加为单独的一行,如下所示:
# if $cygwin ; then
# [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
# fi
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
第 92 行的另一个 if
语句:
# 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"`
您现在可以从 git bash 运行 Spring 启动 CLI。
我在 运行 在 git bash 中使用 "spring" 命令时遇到了同样的问题,我发现我的 spring 安装在 D 驱动器上(而 Java 安装在 C 盘上)。当运行在C盘目录gitbash中执行"spring"命令时,会出现上述错误。如果我在gitbash和运行中再次将目录切换到D盘"spring"命令,它就可以了。