【发布时间】: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是什么