![](/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.