【问题标题】:Grails - Execution failed for task bootRun. A problem occurred starting process command java.exeGrails - 任务 bootRun 执行失败。启动进程命令 java.exe 时出现问题
【发布时间】:2021-10-06 14:02:01
【问题描述】:

有一个现有的 Grails 项目,不幸的是所有参与该项目的人都离开了公司。

当我在 Windows 10 命令提示符下(不以管理员身份运行)时

gradlew bootRun --debug

我明白了

...
09:01:21.398 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: STARTING
09:01:21.398 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Waiting until process started: command 'C:\Program Files\Java\jdk1.8.0_291\bin\java.exe'.
09:01:21.412 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: FAILED
09:01:21.412 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Process 'command 'C:\Program Files\Java\jdk1.8.0_291\bin\java.exe'' finished with exit value -1 (state: FAILED)
09:01:21.412 [DEBUG] [org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter] Removed task artifact state for {} from context.
09:01:21.413 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':bootRun'
09:01:21.413 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] :bootRun FAILED
09:01:21.413 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :bootRun (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.214 secs.
09:01:21.413 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationWorkerRegistry] Worker root.8 completed (0 in use)
09:01:21.413 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[Daemon worker Thread 2,5,main]] finished, busy: 1.458 secs, idle: 0.0 secs
09:01:21.414 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
09:01:21.414 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
09:01:21.415 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
09:01:21.415 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
09:01:21.415 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Execution failed for task ':bootRun'.
09:01:21.415 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > A problem occurred starting process 'command 'C:\Program Files\Java\jdk1.8.0_291\bin\java.exe''
09:01:21.415 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
09:01:21.415 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Try:
09:01:21.415 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Run with --stacktrace option to get the stack trace.
09:01:21.415 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger]
09:01:21.415 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger] BUILD FAILED
09:01:21.415 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger]
...

我试过了

gradlew clean build 

就像我在某处看到的推荐一样,但没有帮助。

我看过

java -version

java version "1.8.0_281"
Java(TM) SE Runtime Environment (build 1.8.0_281-b09)
Java HotSpot(TM) Client VM (build 25.281-b09, mixed mode, sharing)

grails -version
| Grails Version: 4.0.0
| JVM Version: 1.8.0_291

This article 似乎认为我的项目中应该有一个 src/main/java ,但我没有那个目录。我如何创建/获取它?我无法重建该项目,因为它很大。那篇文章提到在某处添加 sourceSets,但没有说明在哪里添加。

知道为什么它不会构建并且找不到 java,以及如何修复它?

在我的 Windows 10 环境设置中,我看到 java_home 和 java_jdk 的两个系统变量都设置为:

c:\Program Files\Java\jdk1.8.0_291

更新:也许这就是问题所在。 java -version 显示 1.8.0_281。 Java 主页是 1.8.0_291。如何让 java -version 显示正确/安装的版本?我的程序文件/Java 目录中有 1.8.0_291。

更新2: 我尝试使用双斜杠在 home/me/.gradle 目录中创建 gradle.properties 文件,因为我有错误并在link 中看到了修复:

org.gradle.java.home=C:\\Program Files\\Java\\jdk1.8.0_291

在我的 Windows 10 命令提示符窗口中,我运行并看到了这个错误:

gradlew bootRun --debug
Changing state to: STARTING
12:39:02.908 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Waiting until process started: command 'C:\Program Files\Java\jdk1.8.0_291\bin\java.exe'.
12:39:02.910 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: FAILED
12:39:02.910 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Process 'command 'C:\Program Files\Java\jdk1.8.0_291\bin\java.exe'' finished with exit value -1 (state: FAILED)
12:39:02.910 [DEBUG] [org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter] Removed task artifact state for {} from context.
12:39:02.910 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':bootRun'
12:39:02.910 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] :bootRun FAILED
12:39:02.911 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :bootRun (Thread[Daemon worker,5,main]) completed. Took 0.245 secs.
12:39:02.911 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationWorkerRegistry] Worker root.8 completed (0 in use)
12:39:02.911 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[Daemon worker,5,main]] finished, busy: 1.989 secs, idle: 0.001 secs
12:39:02.919 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
12:39:02.919 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
12:39:02.919 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
12:39:02.919 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
12:39:02.919 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Execution failed for task ':bootRun'.
12:39:02.919 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > A problem occurred starting process 'command 'C:\Program Files\Java\jdk1.8.0_291\bin\java.exe''
12:39:02.919 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
12:39:02.919 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Try:
12:39:02.919 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Run with --stacktrace option to get the stack trace.
12:39:02.920 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger]
12:39:02.920 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger] BUILD FAILED

仍然不确定是什么导致了错误。我尝试以管理员身份运行命令提示符,并看到相同的错误。

更新3:

试试这个...我在 grailsapp 文件夹中找到了 build.gradle。出于某种原因,Intellij Idea 没有显示它。我添加了这个

compileJava {
        options.fork = true 
        options.forkOptions.executable = '${JAVA_HOME}/bin/javac.exe'
}

我仍然遇到构建失败

08:34:20.026 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Process 'command 'C:\Program Files\Java\jdk1.8.0_291\bin\java.exe'' finished with exit value -1 (state: FAILED)
08:34:20.026 [DEBUG] [org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter] Removed task artifact state for {} from context.
08:34:20.027 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':bootRun'
08:34:20.027 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] :bootRun FAILED
08:34:20.027 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :bootRun (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.212 secs.
08:34:20.027 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationWorkerRegistry] Worker root.8 completed (0 in use)
08:34:20.027 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[Daemon worker Thread 2,5,main]] finished, busy: 1.528 secs, idle: 0.001 secs
08:34:20.028 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
08:34:20.028 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
08:34:20.029 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
08:34:20.029 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
08:34:20.029 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Execution failed for task ':bootRun'.
08:34:20.029 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > A problem occurred starting process 'command 'C:\Program Files\Java\jdk1.8.0_291\bin\java.exe''
08:34:20.029 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
08:34:20.029 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Try:
08:34:20.029 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Run with --stacktrace option to get the stack trace.
08:34:20.029 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger]
08:34:20.029 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger] BUILD FAILED

更新4: 堆栈跟踪结果:

gradlew bootRun --stacktrace
:compileJava NO-SOURCE
:compileGroovy UP-TO-DATE
:generateGitProperties UP-TO-DATE
:buildProperties UP-TO-DATE
:processResources
:classes
:findMainClass
:bootRun FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':bootRun'.
> A problem occurred starting process 'command 'C:\Program Files\Java\jdk1.8.0_291\bin\java.exe''

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':bootRun'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:98)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:68)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:236)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:228)
        at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:61)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:228)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:215)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:77)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:58)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:32)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:113)
        at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
        at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
        at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
        at org.gradle.initialization.DefaultGradleLauncher$RunTasksAction.execute(DefaultGradleLauncher.java:230)
        at org.gradle.initialization.DefaultGradleLauncher$RunTasksAction.execute(DefaultGradleLauncher.java:227)
        at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:161)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:112)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:95)
        at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:66)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:49)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:31)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:46)
Caused by: org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'C:\Program Files\Java\jdk1.8.0_291\bin\java.exe''
        at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:198)
        at org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:329)
        at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:86)
        ... 2 more
Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'C:\Program Files\Java\jdk1.8.0_291\bin\java.exe'
        at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:27)
        at net.rubygrapefruit.platform.internal.WindowsProcessLauncher.start(WindowsProcessLauncher.java:22)
        at net.rubygrapefruit.platform.internal.WrapperProcessLauncher.start(WrapperProcessLauncher.java:36)
        at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:68)
        ... 2 more
Caused by: java.io.IOException: Cannot run program "C:\Program Files\Java\jdk1.8.0_291\bin\java.exe" (in directory "C:\Users\mcleary\grailsapp"): CreateProcess error=206, The filename or extension is too long
        at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25)
        ... 5 more
Caused by: java.io.IOException: CreateProcess error=206, The filename or extension is too long
        ... 6 more


BUILD FAILED

Total time: 3.197 secs

更新5: 我的路径环境变量中有 %JAVA_HOME%\bin ,但那里没有专门的 java.exe 。我想我从来没有在那里见过 java.exe。

更新6: 看着pathingJar,我加了

grails { pathingJar = true } 

构建.gradle。我不确定我是否也必须创建一个文件?

【问题讨论】:

  • 你能分享./gradlew bootRun --stacktrace的相关输出吗? (如果它真的很长,也许可以把它放在一个要点中)。
  • 确定是找不到Java的问题吗?
  • @JeffScottBrown 查看堆栈跟踪的更新。问题是它无法启动java.exe,而不是它找不到java。
  • "问题是无法启动java.exe,不是找不到java。" - 正确的。我看到 hte question 的标题现在改变了。你在使用 pathingJar 吗?
  • 我不知道pathingJar是什么

标签: java grails build


【解决方案1】:

如果在 Windows 上尝试 ./gradlew bootRun(这解决了我的问题)

【讨论】:

    【解决方案2】:

    您可以尝试两种方法:

    在你的 HOME_DIRECTORY 中的 .gradle 目录中的 gradle.properties 中设置 org.gradle.java.home=/path_to_jdk_directory 或:

    在你的 build.gradle 中

    compileJava.options.fork = true compileJava.options.forkOptions.executable = '/path_to_javac'

    【讨论】:

    • 我在 c:/users/me/ 中找到了 .gradle 目录
    • 那里没有grade.properties 文件。
    • 那里也没有 build.gradle。
    • 查看更新。我不确定如何让 Java 版本与 Java_Home/已安装版本一致。
    • 我认为这里提出的解决方案不会解决问题中描述的问题。
    猜你喜欢
    • 1970-01-01
    • 2019-02-15
    • 1970-01-01
    • 2022-11-02
    • 2016-04-15
    • 1970-01-01
    • 2018-08-19
    • 2016-01-01
    • 1970-01-01
    相关资源
    最近更新 更多