我应该使用哪个路径作为 JAVA_HOME 的值?

我应该使用哪个路径作为 JAVA_HOME 的值?

我正在运行 Ubuntu 16.04。我从 Oracle 网站下载了 JDK 7.0,解压后放在一个文件夹中/opt/JDK/,最终安装目录为/opt/JDK/jdk1.7.0_80然后我执行了以下命令这个答案

update-alternatives --install /usr/bin/java java /opt/jdk1.8.0/bin/java 1
update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0/bin/javac 1
update-alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /opt/jdk1.8.0/jre/lib/amd64/libnpjp2.so 1
update-alternatives --set java /opt/jdk1.8.0/bin/java
update-alternatives --set javac /opt/jdk1.8.0/bin/javac
update-alternatives --set mozilla-javaplugin.so /opt/jdk1.8.0/jre/lib/amd64/libnpjp2.so

我想设置JAVA_HOME环境变量。我知道如何使用/etc/environment。困惑的是要使用哪条路径。

我应该使用/usr/bin/java

或者我应该使用/opt/JDK/jdk1.7.0_80

或者我应该使用/opt/JDK/jdk1.7.0_80/bin

的输出update-alternatives --config java为:

There is 1 choice for the alternative java (providing /usr/bin/java).

  Selection    Path                           Priority   Status
------------------------------------------------------------
  0            /opt/JDK/jdk1.7.0_80/bin/java   1         auto mode
* 1            /opt/JDK/jdk1.7.0_80/bin/java   1         manual mode

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

答案1

如您所见,两个选项完全相同,因此您可以同时使用它们。您只需使用以下命令即可设置JAVA_HOME

JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

当您的机器上安装了不同的 JAVA 时,可以使用此命令update-alternatives --config java。例如,我的命令如下:

There are 2 choices for the alternative java (providing /usr/bin/java).

* 0            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      auto mode
  1            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
  2            /usr/lib/jvm/java-8-oracle/jre/bin/java          1081      manual mode

相关内容