gradle 处理命令 java 以非零退出值 1 完成
gradle process command java finished with non-zero exit value 1
当我在 CentOS 7 终端中键入 gradle bootRun --stacktrace --debug
以使用 gradle 启动 this sample spring boot app 时出现以下错误。
Caused by: org.gradle.process.internal.ExecException:
Process 'command '/opt/jdk1.8.0_45/bin/java'' finished with
non-zero exit value 1
我用谷歌搜索了这个错误并阅读了其他相似但不重复的 SO 帖子。例如,这是在 CentOS 7 中的 eclipse 和一个 web 应用程序。这不是一个 android 应用程序等。另外,其他帖子中给出的命令也没有解决这个问题。
重现此问题所需的所有代码都在上面的 github link 中,诊断问题的所有日志都在下面的这个 OP 中。 如何解决此错误以便 gradle bootRun
可以成功启动示例应用程序?
问题的逐步重现:
我通过导航到 /home/user/workspaces/
并输入 git clone https://github.com/jrodenbostel/beyond-the-examples
按原样下载了应用程序
然后我导航到 cd /home/user/workspaces/beyond-the-examples/part-5
并输入 gradle bootRun --stacktrace --debug
,结果是 the stack trace and logs that you can read by clicking on this link to a file sharing site.(日志太长,无法包含在此 OP 中。)
查看日志这似乎是您的问题:
nested exception is org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [inser t into users (username, password, enabled) values (?,?,?)]; Data truncation:
Data too long for column 'password' at row 1; nested exception is com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'password' at row 1.
无论如何你可以截断密码大小?否则增加 'password' 列大小应该可以解决问题。
这是我最初的错误信息:
正在将 Window 环境变量中的 %JAVA_HOME%
从 Java 9(文件目录 C:\Program Files\Java\jdk-9.0.1
)更改为 Java 8(C:\Program Files\Java\jdk1.8.0_151
) 是为我修复它的原因。您可以通过在命令提示符中键入 echo %JAVA_HOME%
来确定您设置 %JAVA_HOME% 的路径。
所以是的,截至 2017 年 12 月 20 日,gradle bootRun
与 Java 9 的配合不佳。希望这会很快得到解决,我可以删除这个答案。
只是想补充一下我对这个错误的经验。在生成我的 Grails 5.1.2 应用程序时,我使用了 Grails Application Forge 并在名称中包含了完整的包。当我 运行 它时,我得到了 "...java'' finished with
non-zero exit value 1" 错误。我回去生成了只有应用程序名称的应用程序,删除了包,它起作用了。此外,这只是命令提示符中 Windows 10 的问题. 我的应用程序的两个版本都在 Cygwin 命令提示符下工作。
就我而言,我在尝试启动 spring 引导应用程序时遇到此错误。错误的原因是端口 8080(运行 我的应用程序的默认端口)已经被我机器上的另一个应用程序(mySql)使用。
我关闭了那个应用程序并重新启动我的应用程序,它成功了!
当我在 CentOS 7 终端中键入 gradle bootRun --stacktrace --debug
以使用 gradle 启动 this sample spring boot app 时出现以下错误。
Caused by: org.gradle.process.internal.ExecException:
Process 'command '/opt/jdk1.8.0_45/bin/java'' finished with
non-zero exit value 1
我用谷歌搜索了这个错误并阅读了其他相似但不重复的 SO 帖子。例如,这是在 CentOS 7 中的 eclipse 和一个 web 应用程序。这不是一个 android 应用程序等。另外,其他帖子中给出的命令也没有解决这个问题。
重现此问题所需的所有代码都在上面的 github link 中,诊断问题的所有日志都在下面的这个 OP 中。 如何解决此错误以便 gradle bootRun
可以成功启动示例应用程序?
问题的逐步重现:
我通过导航到 /home/user/workspaces/
并输入 git clone https://github.com/jrodenbostel/beyond-the-examples
然后我导航到 cd /home/user/workspaces/beyond-the-examples/part-5
并输入 gradle bootRun --stacktrace --debug
,结果是 the stack trace and logs that you can read by clicking on this link to a file sharing site.(日志太长,无法包含在此 OP 中。)
查看日志这似乎是您的问题:
nested exception is org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [inser t into users (username, password, enabled) values (?,?,?)]; Data truncation:
Data too long for column 'password' at row 1; nested exception is com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'password' at row 1.
无论如何你可以截断密码大小?否则增加 'password' 列大小应该可以解决问题。
这是我最初的错误信息:
正在将 Window 环境变量中的 %JAVA_HOME%
从 Java 9(文件目录 C:\Program Files\Java\jdk-9.0.1
)更改为 Java 8(C:\Program Files\Java\jdk1.8.0_151
) 是为我修复它的原因。您可以通过在命令提示符中键入 echo %JAVA_HOME%
来确定您设置 %JAVA_HOME% 的路径。
所以是的,截至 2017 年 12 月 20 日,gradle bootRun
与 Java 9 的配合不佳。希望这会很快得到解决,我可以删除这个答案。
只是想补充一下我对这个错误的经验。在生成我的 Grails 5.1.2 应用程序时,我使用了 Grails Application Forge 并在名称中包含了完整的包。当我 运行 它时,我得到了 "...java'' finished with
non-zero exit value 1" 错误。我回去生成了只有应用程序名称的应用程序,删除了包,它起作用了。此外,这只是命令提示符中 Windows 10 的问题. 我的应用程序的两个版本都在 Cygwin 命令提示符下工作。
就我而言,我在尝试启动 spring 引导应用程序时遇到此错误。错误的原因是端口 8080(运行 我的应用程序的默认端口)已经被我机器上的另一个应用程序(mySql)使用。
我关闭了那个应用程序并重新启动我的应用程序,它成功了!