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)使用。

我关闭了那个应用程序并重新启动我的应用程序,它成功了!