每次终端登录后,$JAVA_HOME 都会重置

每次终端登录后,$JAVA_HOME 都会重置

我刚刚安装了 openjdk-8-jdk。我已经安装了 openjdk-7-jdk。当我运行 时echo $JAVA_HOME,它打印了/usr/lib/jvm/java-7-openjdk-amd64

因此,我尝试更改 $JAVA_HOME 变量,但每次我重新打开终端时,它都会重置为上述路径。我尝试过设置它,/etc/enviroment /etc/profile /etc/bash.bashrc ~/.bashrc但无济于事。

我该如何更改它?另外,$JAVA_HOME 当前设置在哪里?

答案1

登录您的帐户并打开.bash_profile文件

$ vi ~/.bash_profile

使用语法设置JAVA_HOME如下export JAVA_HOME=<path-to-java-bin-directory>/java
如果您希望无需注销即可使更改生效,请输入以下命令:

$ source ~/.bash_profile

答案2

如果您在 /etc/environment 中进行更改,则更改将仅针对当前会话。/etc/profile 是永久更新路径的正确位置。您需要在 /etc 下的配置文件中进行更改

按照以下步骤操作。这应该可以解决您的问题

sudo vim /etc/profile

添加以下两行:

export JAVA_HOME="Your path to jdk folder"

export PATH=$JAVA_HOME/bin:$PATH

要立即应用更改,请运行以下命令:

source /etc/profile

在下次系统重启时将自动选择更改。

答案3

如果可以的话,您不应该自己设置。要更改要使用的 Java 版本,请参阅此指导

片段:

如果您的系统有多个 Java 版本,请在终端窗口中输入以下命令来配置系统使用的版本

sudo update-alternatives --config java

这将为您显示与以下内容类似的选择(详细信息可能有所不同):

There are 2 choices for the alternative java (providing /usr/bin/java).  
Selection Path Priority Status 
———————————————————— 
* 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode 
1 /usr/lib/jvm/jre1.7.0/jre/bin/java 3 manual mode  

Press enter to keep the current choice[*], or type selection number: 1

答案4

我明白了。这是我犯的一个荒唐错误。

由于我设置JAVA_HOME了这么多文件,在一片混乱中我将其设置为/usr/lib/jvm/java-7-openjdk-amd64~/.bashrc因此每次我打开终端时,无论所有其他文件中的内容是什么,它都会更改为此,因为~/.bashrc每次打开终端时都会运行。

相关内容