我已经安装了 IntelliJ,我需要导入一个 Gradle 项目。
我已经使用带有 gradlew build 命令的命令提示符构建了 gradle 项目。
在 IntelliJ 欢迎页面,我已按照正确的说明进行操作,当我选择“完成”时。我收到以下错误:
发现无效的 Gradle JDK 配置。打开 Gradle 设置 JAVA_HOME 环境变量未设置。
当我单击“打开 Gradle 设置”时,它会弹出错误消息 Not found with a path under IntelliJ directory in Program files 并在 jre/jre/bin/....等中搜索。
删除 .gradle
和 .idea
可能会解决问题。
所以:
关闭项目
转到项目目录并删除 .gradle 和 .idea
返回并使用 IDE 重新打开项目
这两个必须在您的 PC 上本地生成(但 .idea
的某些内容可能是版本控制的),而不是从远程或其他地方提取的(它们也应该在 .gitignore
中)。
就我而言,原因是这两个文件夹是在另一台计算机上生成的,而我之前打开了一个项目,其中存在这两个文件夹。
刚刚找到解决方案:
创建一个空的 Gradle 项目,然后转到“项目结构”并检查 JDK 的路径(它应该是有效的,如果不是,您可以添加自己的路径)。
然后构建这个空项目,等待完成后,关闭 IntelliJ。
重新启动它并尝试导入/打开您的 Gradle 项目,现在它应该可以工作了。
您无需创建新项目即可解决此问题。您可以从主窗口(配置 -> 项目默认值 -> 项目结构)执行此操作:
https://i.stack.imgur.com/oWhDb.png
然后,在 SDKs 上,设置适当的 JDK home path
:
https://i.stack.imgur.com/3LY4o.png
如果您使用的是 Mac,请单击带有 3 个点的按钮并选择文件夹 /Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home
。
我在这里找到了这个:
Mac OS X 解决方案:
我遇到了同样的问题,并通过使用以下命令设置 JAVA_HOME 环境变量来修复它:
launchctl setenv JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/
有关如何在 Mac OS X 中设置环境变量的信息,请参阅此答案:Setting environment variables in OS X?
setenv `JAVA_HOME /usr/libexec/java_home`
。注意:java_home
是一个 command,因此它被包含在反引号中,以便对其进行评估。
关闭项目转到项目目录并删除
.gradle
。主意
返回并使用 IDE 重新打开项目
要添加到之前的响应中,如果您想在 Git 中克隆存储库时防止此问题,您只需从 .gitignore
文件中删除 .idea/misc.xml
。这包含有关项目 jar 的信息。例如:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_10" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
</project>
我最近在导入 Gradle 项目时遇到了同样的问题。诀窍是从 JAVA_HOME 变量中删除引号。因此,我的路径现在只包含普通路径 C:\Program Files\Java\jdk1.8.0_66
,而不是 "C:\Program Files\Java\jdk1.8.0_66"
。
就我而言,我只需重新启动 IDE 即可。它会自动下载 Gradle 以适应项目版本。
我在新安装的 Windows 操作系统上遇到了同样的问题。我根本没有 JDK,忘记检查它 invalid JDK configuration 。默认情况下,您可以检查项目配置。如果为空 NO_SDK_ProjectStructure 尝试从 Oracle 网站下载 JDK 并配置您的项目结构
我的基于 Gradle 的项目在 tomcat 9 上遇到了同样的问题。您可以通过使用以下代码配置 application.properties 文件来轻松纠正问题。
位置 - src/main/resources/application.properties
server.port = 9090
spring.security.user.name= admin
spring.security.user.password= password
上述解决方案没有解决我的问题,而根本原因是我从旧系统导入了设置,并且内部 Intellij 配置无效,因为它在 jdk.table.xml
列表中的第一个 jdk 指向了错误的路径。要解决此问题,您应该在 intellij config folder 中找到此文件,然后只需使用编辑器打开它并删除与错误 jdk 版本相关的整个块。
关闭您正在处理的项目,然后创建另一个新项目并构建它,然后关闭它并返回到您的旧项目,它就会工作。
在 gradle.properties 上评论这段代码,问题就消失了。
#org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home