gradle process 命令 java 以非零退出值 1 结束

Posted

技术标签:

【中文标题】gradle process 命令 java 以非零退出值 1 结束【英文标题】:gradle process command java finished with non-zero exit value 1 【发布时间】:2016-03-29 07:36:07 【问题描述】:

当我在 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 链接中,诊断问题的所有日志都在下面的这个 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 中。)

【问题讨论】:

我在 Mac 上遇到了同样的错误,但早期的异常指向数据库错误。你也收到了吗? @DavidR 感谢您在您的机器上重现问题。我刚刚发布了更完整的日志,其中包括一个数据库错误。它们太长了,不适合 OP,所以我在文件共享站点上放了指向它们的链接。我是否遇到与您相同的错误? 不,我没有设置超出示例的数据库。查看日志,这似乎是您的问题: ption;嵌套异常是 org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [inser t into users (username, password, enabled) values (?,?,?)];数据截断:第 1 行的“密码”列数据太长;嵌套异常是 com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'password' at row 1。无论如何你可以截断密码大小?或者增加该列的大小... @DavidR 你指出我要解决这个错误。如果您想将其写为答案,我很乐意将其标记为已接受并 +1。您的错误是由于未安装数据库。我的错误是由于我用来创建数据表的 ddl 中的字段长度错误。更改单个字段的 ddl 中的字段长度解决了该问题。这是我第一次使用 gradle。在检查所有此类依赖项时,它比 maven 严格得多。 【参考方案1】:

这是我原来的错误信息:

将 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 配合使用。希望这会很快得到解决,我可以删除这个答案。

【讨论】:

如果有人找到一种方法让它与 Java 9 一起工作,那将是很棒的,因为我不喜欢在我的开发工作区中倒退。【参考方案2】:

查看日志,这似乎是您的问题:

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. 

无论如何你可以截断密码大小?否则增加“密码”列的大小应该可以解决问题。

【讨论】:

【参考方案3】:

只是想补充一下我对这个错误的经验。在生成我的 Grails 5.1.2 应用程序时,我使用了 Grails Application Forge 并在名称中包含了完整的包。当我运行它时,我完成了“...java” 非零退出值 1" 错误。我返回并仅使用应用程序名称生成应用程序,删除了包,并且它起作用了。此外,这只是 Windows 10 上命令提示符中的问题。我的应用程序的两个版本在 Cygwin 命令提示符下工作。

【讨论】:

以上是关于gradle process 命令 java 以非零退出值 1 结束的主要内容,如果未能解决你的问题,请参考以下文章

进程“命令节点”以非零退出值 1 结束

错误 Gradle Build C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' 以非零退出值 1 结束

进程'命令'C:/Users/xxxx/python.exe''以非零退出值1结束

异常:Gradle 任务 assembleDebug 失败,退出代码 1 以非零退出值 1 完成

.gradle/nodejs/node-v6.7.0-darwin-x64/bin/node'' 以非零退出值 1 结束

以非零退出值结束