![](/img/trans.png)
[英]IntelliJ IDEA - Maven Can't Find JAVA_HOME After Java 11 Install
[英]IntelliJ IDEA uses wrong $JAVA_HOME when running things inside it, and I can't change it
我在Debian Sid上。
在所有可以想象的地方,我都将JDK设置为Oracle JDK8:
user@host:~$ cat .bash_profile | grep JAVA_HOME
user@host:~$ cat .bashrc | grep JAVA_HOME
export JAVA_HOME='/usr/lib/jvm/jdk-8-oracle-x64'
user@host:~$ sudo update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1069 auto mode
1 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1069 manual mode
2 /usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java 317 manual mode
* 3 /usr/lib/jvm/jdk-8-oracle-x64/jre/bin/java 318 manual mode
Press <enter> to keep the current choice[*], or type selection number: 3
在“ Switch IDE boot JDK ...” IDE操作中:
在“关于”菜单项中:
如果我用echo $JAVA_HOME
运行xterm
,它的确会打印/usr/lib/jvm/jdk-8-oracle-x64
,在这里一切都很好。
但是,如果我在IntelliJ IDEA的内置终端中运行echo $JAVA_HOME
,则可以看到$JAVA_HOME
设置为错误的值:
user@host:~$ echo $JAVA_HOME
/usr/lib/jvm/java-1.7.0-openjdk-amd64
user@host:~$
如果我运行Java测试或通过IDE插件运行Maven,则$JAVA_HOME
也会设置为相同的错误值(这可以由Maven或测试运行程序使用Runtime.getRuntime().exec("printenv | grep JAVA_HOME");
)。
无论我在IDE中打开任何项目,都会发生这种情况。
$JAVA_HOME
可以在其他什么地方意外地设置为错误的值/usr/lib/jvm/java-1.7.0-openjdk-amd64
吗?
找到了。
做了一个
find / -type f -size -409600c -print0 | xargs -I{} -0 grep -sl "java-1.7.0-openjdk" {}
有罪的文件是/etc/profile.d/bigtop.sh
。 我不知道为什么IDEA(heh)显然运行了该脚本。 它具有以下内容:
export MAVEN_HOME=/usr/local/maven
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
export ANT_HOME=/usr/local/ant
export GRADLE_HOME=/usr/local/gradle
export PATH=$MAVEN_HOME/bin:$ANT_HOME/bin:$FORREST_HOME/bin:$GRADLE_HOME/bin:$PATH
export GRADLE_OPTS="-Dorg.gradle.daemon=true"
我在那里更改了JAVA_HOME
,它解决了我的问题。
我有同样的问题。 解决方案-只需关闭IntelliJ,然后再次启动它即可:)但这与File-> Restart不同。 它必须是一个新的开始。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.