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

如何在Ubuntu中将JAVA_HOME的值更改为Oracle的Java?

应该指向java-6-sunjava-6-sun-1.6.0.24吗?

我把线:

 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环境variables,并且在系统级别意味着使用应该在/ etc / environment文件中设置。 更多 。

如果您想要在全局和系统级别进行更改,

 /etc/environment 

添加这一行:

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

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

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

现在设置你的JAVA_HOME环境variables:

 $ 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: 

注意左边数字前面的星号,如果没有设置正确的星号,可以通过input数字并按回车键来select正确的星号。 现在testing你的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上testing了这个解决scheme,并且在两个版本中都能正常工作。

如果你希望这个环境variables对所有用户都可用并且在系统上启动,那么你可以在/etc/profile.d/java.sh中添加以下内容(如果需要的话):

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

然后在terminal运行:

 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下载)。

java 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

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

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设置成JDK,你应该多走一个文件夹:

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

如果要在安装多个JDK时使用特定版本的Java,只需设置JAVA_HOME即可。

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

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

看到这个 ; 跑

 sudo update-java-alternatives --list 

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

 sudo update-java-alternatives --set [JDK/JRE name eg java-8-oracle] 

select使用哪个JRE / JDK。

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

 sudo update-alternatives --config java[Tab] 

查看可以configuration的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。