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 结束的主要内容,如果未能解决你的问题,请参考以下文章
错误 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 结束