Gradle命令无法启动守护进程,导致失败

4

我正在尝试运行gradle命令。一开始它可以正常工作,但是后来它开始失败了,因为它无法启动daemon。我在Windows 7 Enterprise上使用Gradle 2.5和IBM jdk 1.6。

我已经清理了我的用户主目录中的.gradle目录并重新启动了系统。

在我朋友的机器上,使用相同版本的软件可以正常工作。请帮忙解决问题。

org.gradle.api.GradleException: 无法启动Gradle守护进程。 在org.gradle.launcher.daemon.client.DefaultDaemonStarter.startProcess(DefaultDaemonStarter.java:137)处发生错误。 在org.gradle.launcher.daemon.client.DefaultDaemonStarter.startDaemon(DefaultDaemonStarter.java:114)处发生错误。 在org.gradle.launcher.daemon.client.DefaultDaemonConnector.startDaemon(DefaultDaemonConnector.java:109)处发生错误。 在org.gradle.launcher.daemon.client.DefaultDaemonConnector.connect(DefaultDaemonConnector.java:87)处发生错误。 在org.gradle.launcher.daemon.client.DaemonClient.execute(DaemonClient.java:117)处发生错误。 在org.gradle.launcher.daemon.client.DaemonClient.execute(DaemonClient.java:77)处发生错误。 在org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:40)处发生错误。 在org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:170)处发生错误。 在org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237)处发生错误。 在org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210)处发生错误。 在org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)处发生错误。 在org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)处发生错误。 在org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)处发生错误。 在org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)处发生错误。 在org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)处发生错误。 在org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)处发生错误。 在org.gradle.launcher.Main.doAction(Main.java:33)处发生错误。 在org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)处发生错误。 在sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)处发生错误。 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)处发生错误。 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)处发生错误。 在java.lang.reflect.Method.invoke(Method.java:611)处发生错误。 在org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)处发生错误。 在org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)处发生错误。 在org.gradle.launcher.GradleMain.main(GradleMain.java:23)处发生错误。 由于java.io.EOFException导致org.gradle.api.UncheckedIOException: java.io.EOFException。 在org.gradle.launcher.daemon.bootstrap.DaemonStartupCommunication.readDiagnostics(DaemonStartupCommunication.ja va:100)处发生错误。 在org.gradle.launcher.daemon.bootstrap.DaemonGreeter.parseDaemonOutput(DaemonGreeter.java:40)处发生错误。 在org.gradle.launcher.daemon.client.DefaultDaemonStarter.startProcess(DefaultDaemonStarter.java:133)处发生错误。 ... 24 more
3个回答

7

不确定您的具体情况(以及IBM jdk),但是每当守护程序或一般情况下任何完美工作的构建突然停止工作时,我会尝试两件事。

  1. gradle myTask --no-daemon 以不使用守护程序的方式运行构建,以确保是否确实存在守护程序问题。

  2. gradle --stop 杀死任何现有的守护程序,然后再次尝试构建。

关于在Windows上使用守护程序,请注意gradle文档中的警告:

运行未正确释放资源的构建也可能使守护程序(以及构建环境)不稳定。这是一个特别严重的问题,尤其是在使用Microsoft Windows时,因为它对未能在读取或写入后关闭文件的程序更加苛刻。


1
感谢您的回复。当我尝试运行 gradle --no-daemon 时,它可以正常工作。gradle --stop 可以停止挂起的守护进程,但无法解决问题。我仍然需要使用 --no-daemon。现在 Oracle JDK 也出现了这个问题。昨天它还能用,今天重新启动我的机器后,它又出现了同样的问题。 - Rob Wilkinson
因此,问题不在于jdk或您的构建脚本。可能是Windows上的gradle守护进程不稳定。请检查您的代码是否正确释放文件(在“finally”块中)。您可以创建一个重现问题的示例项目,并在此处记录问题:https://issues.gradle.org/ - kdabir

1

我在运行gradle任务时遇到了相同的问题。删除gradle缓存(~/.gradle/cache)解决了它..!!


1

我最初使用了提供的tar.gz构建包中的JDK 9.0.4。作为日志输出,我收到了以下内容:

org.gradle.api.GradleException: Could not start Gradle daemon

在安装JDK 9.0.4的exe安装包后,出现了错误消息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接