如何在 Ubuntu 中将 Oracle 的 Java 设置为默认 Java?

如何更改 Ubuntu 中 JAVA_HOME的值以指向 Oracle 的 Java?

它应该指向 java-6-sun还是 java-6-sun-1.6.0.24

306279 次浏览

我写道:

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文件中设置。

如果你想让所有用户都能使用这个环境变量,并且在系统启动时使用,那么你可以在 /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 下载)。

如果你想在全球和系统层面改变它;

进去

/etc/environment

加上这一行:

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

Java 6

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

或者爪哇7

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

如果您希望在安装多个 JDK 时使用特定版本的 JAVA,那么仅仅设置 JAVA _ HOME 可能无法工作。

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

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

如果您正在进行任何类型的开发,那么您需要指向 JDK (JDK)。否则,你可以指向 JRE (JRE)。

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

您应该根据当前使用的 Java 设置 JAVA_HOMEreadlink将为当前 Java 打印一个符号链接的值,而 sed将其调整为 JRE 目录:

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

如果你想要设置 JAVA _ HOME to JDK,你应该多加一个文件夹:

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

设置 Oracle 的 Java SE 开发工具包为系统默认的 Java 只需从 给你下载最新的 Java SE 开发工具包,然后在文件系统中创建一个你喜欢的目录,例如 /usr/java现在解压缩刚刚下载的文件到该目录中:

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

现在设置你的 ABc0环境变量:

$ 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 上测试过这个解决方案,它们都可以工作。

参见 这个; 运行

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-options 来一次配置一个 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。

给你下载所需的 Java 版本

  1. Wget-c —— no-cookies —— no-check-certificate —— Header“ Cookie: Oraclelicense = access-secureback-cookie” Http://monalisa.cern.ch/monalisa/download/java/jdk-8u172-linux-x64.tar.gz

  2. Cd/opt/

  3. Tar-xvzf jdk-8u172-linux-x64.tar. gz 4.JAVA _ HOME =/opt/jdk1.8.0 _ 172/

  4. Update-options —— install/usr/bin/java java ${ JAVA _ HOME% */}/bin/JAVA 20000

  5. Update-options —— install/usr/bin/javac ${ JAVA _ HOME% */}/bin/javac 20000

  6. Update-options —— config java

  7. 选择您想要使用的版本。例如: 指示’/opt/jdk1.8.0 _ 172/bin/java’ 项目

  8. 验证 java 版本: java-version

    最后一步:

    重启服务。