我开始使用 Gradle 和 Intellij,但在配置 Gradle 的 JVM 时遇到问题。 当我启动一个新的 Gradle 项目时,我不允许将 JVM 定义为我的 JAVA_HOME 变量。以下屏幕截图显示了正在发生的情况:
正如你所看到的,Intellij 说我的 JAVA_HOME 变量未定义,但是如果我输入
echo $JAVA_HOME
我可以获得我的 Java 目录,在我的例子中:/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
我的./~bash_profile配置如下:
export JAVA_HOME=$(/usr/libexec/java_home)
有人能弄清楚发生了什么吗? 谢谢!
有点违反直觉,但您必须首先为 Java 项目设置 SDK。在 IntelliJ 欢迎屏幕的右下角,选择“配置 > 项目默认值 > 项目结构”。
左侧的“项目”选项卡将显示您没有选择 SDK:
因此,您必须单击下拉列表右侧的“新建...”按钮并将其指向您的 JDK。之后,您可以返回到导入屏幕,并且它应该填充您的 JAVA_HOME 变量(前提是您已经设置了此设置)。
问题是你的“Project SDK”没有!点击“New ...”添加一个“Project SDK”,并选择JDK的路径。然后应该就OK了。
到目前为止,还没有人回答实际问题。
有人能弄清楚发生了什么吗?
这里的问题是,虽然您的$JAVA_HOME
的值是正确的,但您将其定义在错误的位置。
~/.bash_profile
文件。因此,当您输入 echo $JAVA_HOME
时,它将返回在那里设置的值。~/.bash_profile
…为什么要这样呢?所以对于IntelliJ来说,这个变量没有设置。对此有两种可能的解决方案:
"/Applications/IntelliJ IDEA.app/Contents/MacOS/idea"
。 idea
进程将继承任何已被export
编辑的Bash环境变量。 (既然你做了export JAVA_HOME=…
,它就有效了!),或者,更复杂的方法:设置适用于所有程序的全局环境变量,而不仅仅是 Bash 会话。这比您想象的要复杂,例如在here和here进行了解释。你应该做的就是跑步
/bin/launchctl setenv JAVA_HOME $(/usr/libexec/java_home)
但是,重启后此设置会重置。为了确保每次启动时都运行,请执行
cat << EOF > ~/Library/LaunchAgents/setenv.JAVA_HOME.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>setenv.JAVA_HOME</string>
<key>ProgramArguments</key>
<array>
<string>/bin/launchctl</string>
<string>setenv</string>
<string>JAVA_HOME</string>
<string>$(/usr/libexec/java_home)</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>
EOF
请注意,这也会影响终端进程,因此无需在
~/.bash_profile
中添加任何内容。如果您想让 intellij 识别您的 JAVA_HOME,您可以执行以下操作之一:
launchctl setenv JAVA_HOME "/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home"
要直接回答您的问题,您可以在 ~/.bash_profile 中添加 launchctl 行
正如其他人回答的那样,您可以通过在项目结构中设置 SDK 来忽略 JAVA_HOME。
就我而言,我需要一个较低的 JRE,因此我必须告诉 IntelliJ 在“平台设置”中使用不同的 JRE
就我而言,帮助卸载了 Android 插件 - Idea 一直困扰我设置 Android NDK 并且不让我更改 Java 默认 SDK - 而且由于我不为 Android 开发,所以我可以将其删除。
我也遇到了这个问题,在使用 sdkman 设置 jdk 和 maven 并从工具箱应用程序安装 idea 进行全新的 Linux mint 21.3 安装后。在我的操作系统终端和idea的终端窗口上一切正常,但是使用git工具窗口提交在我的项目上返回问题(日志说找不到JAVA_HOME)。找到此页面https://ntsim.uk/posts/running-git-hooks-with-environment-variables-in-intellij并进行测试后,我的问题得到了解决。总而言之,我做到了
将其添加到 ~/.profile 文件中:
export JAVA_HOME="$HOME/.sdkman/candidates/java/current"
之后我重新启动并检查它是否有效。确实如此! 祝你有美好的一天