136

如何将JAVA_HOMEUbuntu 中的值更改为指向 Oracle 的 Java?

它应该指向java-6-sunorjava-6-sun-1.6.0.24吗?

4

9 回答 9

175

我把这条线:

export JAVA_HOME=/usr/lib/jvm/java-7-oracle

在我的~/.bashrc档案中。

/usr/lib/jvm/java7-oracle应该是指向的符号链接/usr/lib/jvm/java-7-oracle-[version number here]

它是符号链接的原因是,如果有新版本的 JVM,您不需要更新.bashrc文件,它应该自动指向新版本。

如果要在JAVA_HOME全局和系统级别设置环境变量,则应在/etc/environment文件中设置使用。

于 2011-06-25T11:34:02.733 回答
167

如果您想在全局和系统级别更改它;

/etc/environment

添加这一行:

JAVA_HOME=/usr/lib/jvm/java-7-oracle
于 2012-11-06T08:38:40.113 回答
58

要将 Oracle 的 Java SE 开发工具包设置为系统默认 Java,只需从此处下载最新的 Java SE 开发工具包,然后在文件系统中您喜欢的位置创建一个目录,例如/usr/java现在提取您刚刚下载到该目录中的文件:

$ sudo tar xvzf jdk-8u5-linux-i586.tar.gz -C /usr/java

现在设置您的JAVA_HOME环境变量:

$ JAVA_HOME=/usr/java/jdk1.8.0_05/
$ sudo update-alternatives --install /usr/bin/java java ${JAVA_HOME%*/}/bin/java 20000
$ sudo update-alternatives --install /usr/bin/javac javac ${JAVA_HOME%*/}/bin/javac 20000

确保通过以下方式将 Oracle 的 java 设置为默认 java:

$ update-alternatives --config java

你会得到这样的东西:

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

  Selection    Path                                           Priority   Status
------------------------------------------------------------
* 0            /opt/java/jdk1.8.0_05/bin/java                  20000     auto mode
  1            /opt/java/jdk1.8.0_05/bin/java                  20000     manual mode
  2            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      manual mode

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

注意左边数字前的星号,如果没有设置正确的星号,请输入它的数字并按回车键选择正确的星号。现在测试你的java:

$ java -version

如果你得到类似以下的东西,你很高兴:

java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode)

另请注意,您可能需要 root 权限或在 sudoers 组中才能执行此操作。我已经在 ubuntu 12.04 和 Debian wheezy 上测试了这个解决方案,并且它在这两个版本中都有效。

于 2014-05-14T04:10:27.587 回答
21

如果您希望此环境变量可供所有用户使用并在系统启动时使用,则可以将以下内容添加到/etc/profile.d/java.sh(如有必要,请创建它):

export JDK_HOME=/usr/lib/jvm/java-7-oracle
export JAVA_HOME=/usr/lib/jvm/java-7-oracle

然后在终端运行:

sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh

我的第二个问题是 - 它应该指向 java-6-sun 还是 java-6-sun-1.6.0.24 ?

它应该始终指向指向java-7-oracle最新安装的符号链接(假设您从 Ubuntu 存储库安装了 Java,现在从 oracle.com 下载)。

于 2011-06-25T11:47:16.370 回答
12

爪哇6

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64

或Java 7

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64

于 2013-11-29T19:01:56.140 回答
10

如果您正在进行任何类型的开发,您需要指向 JDK(Java 开发工具包)。否则,您可以指向 JRE(Java 运行时环境)。

JDK 包含 JRE 所拥有的一切以及更多。如果您只是在执行 Java 程序,则可以指向 JRE 或 JDK。

您应该JAVA_HOME 根据当前使用的 Java 进行设置。 readlink将打印当前 Java 的符号链接的值sed并将其调整到 JRE 目录:

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

如果你想将 JAVA_HOME 设置为 JDK,你应该多上一个文件夹:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
于 2014-03-13T22:48:30.520 回答
8

如果您想在安装多个 JDK 时使用特定版本的 Java,仅设置 JAVA_HOME 可能不起作用。

您需要使用sudo update-alternatives --config java来设置默认Java。

请参阅https://askubuntu.com/questions/121654/how-to-set-default-java-version

于 2014-01-27T15:08:01.867 回答
6

看到这个;跑

sudo  update-java-alternatives --list

按名称和目录列出机器上的所有 Java 安装,然后运行

sudo  update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]

选择要使用的 JRE/JDK。

如果要为每个 Java 任务使用不同的 JDK/JRE,可以运行 update-alternatives 来一次配置一个 java 可执行文件;你可以跑

sudo  update-alternatives --config java[Tab]

查看可以配置的 Java 命令(java、javac、javah、javaws 等)。接着

sudo  update-alternatives --config [javac|java|javadoc|etc.]

将该 Java 任务/命令关联到特定的 JDK/JRE。

您可能还需要为某些应用程序设置 JAVA_HOME:从此答案中您可以使用

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

对于 JRE,或

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

对于 JDK。

于 2016-02-10T01:42:20.317 回答
0

从这里下载所需的 Java 版本

  1. wget -c --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" http://monalisa.cern.ch/MONALISA/download/java/jdk-8u172-linux -x64.tar.gz

  2. 光盘/选择/

  3. tar -xvzf jdk-8u172-linux-x64.tar.gz 4.JAVA_HOME=/opt/jdk1.8.0_172/

  4. update-alternatives --install /usr/bin/java java ${JAVA_HOME%*/}/bin/java 20000

  5. update-alternatives --install /usr/bin/javac javac ${JAVA_HOME%*/}/bin/javac 20000

  6. 更新替代品--config java

  7. 选择您要使用的版本。例如:数字 1 表示 '/opt/jdk1.8.0_172/bin/java' iTerm

  8. 验证 java 版本:java -version

    最后一步:

    重新启动服务。

于 2021-09-30T18:51:37.960 回答