Eclipse创建新Gradle项目未生成任何文件问题求助
解决Eclipse+Gradle+JDK19创建项目空文件夹问题
问题详情
- 环境:全新安装的Eclipse IDE,搭配JDK 19、Gradle 7.6和Buildship插件
- 现象:通过「新建->项目」创建Gradle项目时,向导正常弹出,但创建完成后仅生成空文件夹,无
build.gradle、Java库等文件;普通Java项目可正常创建 - 核心报错:
org.gradle.internal.jvm.JavaHomeException: 指定的javaHome无效,无法找到java可执行文件,尝试路径为C:\Program Files\Java\jdk-19\bin\java.exe - 已尝试操作:重装Gradle和Buildship,问题未解决
错误日志(中文翻译版)
org.gradle.tooling.GradleConnectionException: 无法使用与Gradle发行版'https://services.gradle.org/distributions/gradle-7.4.2-bin.zip'的连接执行构建。 at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:55) at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:29) at org.gradle.tooling.internal.consumer.ResultHandlerAdapter.onFailure(ResultHandlerAdapter.java:43) at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:69) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1589) at org.gradle.tooling.internal.consumer.BlockingResultHandler.getResult(BlockingResultHandler.java:46) at org.gradle.tooling.internal.consumer.DefaultBuildLauncher.run(DefaultBuildLauncher.java:83) at org.eclipse.buildship.core.internal.workspace.InitializeNewProjectOperation.initProjectIfNotExists(InitializeNewProjectOperation.java:60) at org.eclipse.buildship.core.internal.workspace.InitializeNewProjectOperation.runInToolingApi(InitializeNewProjectOperation.java:45) at org.eclipse.buildship.core.internal.operation.DefaultToolingApiOperationManager$WorkspaceRunnableAdapter.run(DefaultToolingApiOperationManager.java:58) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2380) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2405) at org.eclipse.buildship.core.internal.operation.DefaultToolingApiOperationManager.run(DefaultToolingApiOperationManager.java:39) at org.eclipse.buildship.core.internal.operation.DefaultToolingApiOperationManager.run(DefaultToolingApiOperationManager.java:33) at org.eclipse.buildship.ui.internal.wizard.project.ProjectImportWizardController$5.run(ProjectImportWizardController.java:208) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122) Caused by: org.gradle.internal.jvm.JavaHomeException: 指定的javaHome无效,无法找到java可执行文件。尝试路径:C:\Program Files\Java\jdk-19\bin\java.exe at org.gradle.internal.jvm.Jvm.findExecutable(Jvm.java:183) at org.gradle.internal.jvm.Jvm.getJavaExecutable(Jvm.java:208) at org.gradle.internal.jvm.Jvm.forHome(Jvm.java:119) at org.gradle.launcher.daemon.context.DaemonCompatibilitySpec.javaHomeMatches(DaemonCompatibilitySpec.java:64) at org.gradle.launcher.daemon.context.DaemonCompatibilitySpec.whyUnsatisfied(DaemonCompatibilitySpec.java:40) at org.gradle.launcher.daemon.context.DaemonCompatibilitySpec.isSatisfiedBy(DaemonCompatibilitySpec.java:35) at org.gradle.launcher.daemon.context.DaemonCompatibilitySpec.isSatisfiedBy(DaemonCompatibilitySpec.java:25) at org.gradle.launcher.daemon.client.DefaultDaemonConnector.getCompatibleDaemons(DefaultDaemonConnector.java:192) at org.gradle.launcher.daemon.client.DefaultDaemonConnector.connectToIdleDaemon(DefaultDaemonConnector.java:157) at org.gradle.launcher.daemon.client.DefaultDaemonConnector.connect(DefaultDaemonConnector.java:125) at org.gradle.launcher.daemon.client.DaemonClient.execute(DaemonClient.java:145) at org.gradle.launcher.daemon.client.DaemonClient.execute(DaemonClient.java:99) at org.gradle.tooling.internal.provider.DaemonBuildActionExecuter.execute(DaemonBuildActionExecuter.java:44) at org.gradle.tooling.internal.provider.DaemonBuildActionExecuter.execute(DaemonBuildActionExecuter.java:30) at org.gradle.tooling.internal.provider.LoggingBridgingBuildActionExecuter.execute(LoggingBridgingBuildActionExecuter.java:60) at org.gradle.tooling.internal.provider.LoggingBridgingBuildActionExecuter.execute(LoggingBridgingBuildActionExecuter.java:37) at org.gradle.tooling.internal.provider.ProviderConnection.run(ProviderConnection.java:222) at org.gradle.tooling.internal.provider.ProviderConnection.run(ProviderConnection.java:148) at org.gradle.tooling.internal.provider.DefaultConnection.getModel(DefaultConnection.java:202) at org.gradle.tooling.internal.consumer.connection.CancellableModelBuilderBackedModelProducer.produceModel(CancellableModelBuilderBackedModelProducer.java:54) at org.gradle.tooling.internal.consumer.connection.PluginClasspathInjectionSupportedCheckModelProducer.produceModel(PluginClasspathInjectionSupportedCheckModelProducer.java:38) at org.gradle.tooling.internal.consumer.connection.AbstractConsumerConnection.run(AbstractConsumerConnection.java:64) at org.gradle.tooling.internal.consumer.connection.ParameterValidatingConsumerConnection.run(ParameterValidatingConsumerConnection.java:49) at org.gradle.tooling.internal.consumer.DefaultBuildLauncher$1.run(DefaultBuildLauncher.java:97) at org.gradle.tooling.internal.consumer.DefaultBuildLauncher$1.run(DefaultBuildLauncher.java:89) at org.gradle.tooling.internal.consumer.connection.LazyConsumerActionExecutor.run(LazyConsumerActionExecutor.java:143) at org.gradle.tooling.internal.consumer.connection.CancellableConsumerActionExecutor.run(CancellableConsumerActionExecutor.java:45) at org.gradle.tooling.internal.consumer.connection.ProgressLoggingConsumerActionExecutor.run(ProgressLoggingConsumerActionExecutor.java:61) at org.gradle.tooling.internal.consumer.connection.RethrowingErrorsConsumerActionExecutor.run(RethrowingErrorsConsumerActionExecutor.java:38) at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:67) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
解决方案
验证JDK路径与权限
- 手动检查
C:\Program Files\Java\jdk-19\bin\java.exe是否存在,若不存在则重新下载安装官方JDK19 - 若路径存在,右键以管理员身份运行Eclipse,避免因权限不足无法读取JDK文件
- 手动检查
修正Eclipse的JRE配置
- 打开Eclipse,依次进入
Window > Preferences > Java > Installed JREs - 确认已添加JDK19,路径需指向
C:\Program Files\Java\jdk-19(而非内部的jre文件夹) - 勾选该JDK作为默认选项,点击Apply和OK保存配置
- 打开Eclipse,依次进入
指定Gradle的Java环境
- 进入
Window > Preferences > Gradle > Arguments - 在
Java Home选项中手动指定JDK19的安装路径C:\Program Files\Java\jdk-19,不要依赖系统环境变量 - 重启Eclipse后重试创建项目
- 进入
检查系统环境变量
- 确认系统
JAVA_HOME变量指向C:\Program Files\Java\jdk-19,Path变量中包含%JAVA_HOME%\bin - 重启电脑使环境变量生效,再打开Eclipse尝试操作
- 确认系统
统一Gradle版本
日志显示实际使用的是Gradle7.4.2(而非手动安装的7.6),可通过以下方式修正:- 创建项目时,在向导中选择
Use local Gradle distribution,指向本地Gradle7.6的安装路径 - 若已生成空项目,手动添加
build.gradle和settings.gradle,并在settings.gradle中指定rootProject.name = "你的项目名",同时设置Gradle版本为7.6
- 创建项目时,在向导中选择
内容的提问来源于stack exchange,提问作者James Brafin
相关产品推荐
相关产品推荐

