java - IntelliJ IDEA 在里面运行东西时使用了错误的 $JAVA_HOME,我无法更改它

标签 java intellij-idea java-home

我在 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

Project SDK set to java 1.8.0_51 (Oracle)

在“Switch IDE boot JDK...”IDE Action 中:

Boot SDK set to java 1.8.0_51 (Oracle)

在“关于”菜单项中:

enter image description here

如果我使用 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(嘿)显然运行了那个脚本。它具有以下内容:

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,它解决了我的问题。

关于java - IntelliJ IDEA 在里面运行东西时使用了错误的 $JAVA_HOME,我无法更改它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38521283/

相关文章:

java - 如何在Jmock中模拟对象?如果使用 new 运算符创建对象

java - 不可解析的 POM

java - 按位运算符的负操作数如何在 Java 中工作?

intellij-idea - IntelliJ IDEA、Test Runner Pane、最大化输出 Pane

android - 在mac中设置ANDROID_HOME环境变量

java - 强制java路径mac

java - 在 mac osx 上安装 hadoop 2.3

java - 如何在出现 'cannot resolve put symbol' 错误时将键和值添加到 Hashmap

java - com.rest Api.java.jpa.UserDao Service CommandLineRunner 中的字段 userDAOService 需要类型为 'service.UserDAOService' 的 bean,但无法找到

intellij-idea - 如何在 IntelliJ IDEA 中以 Debug模式运行 Play Framework 2.x?