ubuntu下2种配置oracle jdk的方法

虽然现在都流行TL;DR,但还是一如继往地授之以渔,虽然看似很长,其实非常简单,更多的内容是在讲原因。不仅适用于ubuntu系的系统,手动安装方式同样可类似地用于其他系统。无法就两步:下载并解决JDK,配置环境变量。

通过ubuntu的PPA来安装

详情可参见:http://www.ubuntuupdates.org/ppa/webupd8_java

安装java

安装ppa源,并安装java8:

1
2
3
sudo add-apt-repository ppa:webupd8team/java 
sudo apt-get update
sudo apt-get install oracle-java8-installer

需要安装其他相应的版本,替换成相应的版本即可

设置为默认java环境

这个PPA也提供了一个自动设置oracle java为默认java的包,通过以下命令安装后会自动将oracle java设置为默认:

1
sudo apt-get install oracle-java8-set-default

不过我测试中发现,安装oracle-java8-installer时,会自动安装oracle-java8-set-default并将这个ppa安装的java设置为默认的java

或者手动选择使用哪个java,特别是当你系统中有多个java版时:

1
sudo update-alternatives --config java

此时会列出系统中的所有java,根据需要输入数字选择即可

如果系统中有多个javac可供选择,也可以通过以下命令设置默认的javac:

1
sudo update-alternatives --config javac

测试是否安装成功:

1
2
java -version
javac -version

环境变量设置

由于很多软件都需要根据java的环境变量来确定需要使用的java,所以需要为其设置环境变量。有2种方式设置,即可以在用户目录下的个人配置文件中设置,也可以在全局环境中设置,推荐在个人配置文件中设置,因为这样方便不同的用户使用不同的java版本。
通过修改~/.bashrc设置当前用户的java环境变量
可以根据刚才使用的命令sudo update-alternatives --config java 来显示你的java路径
在.bashrc的最后添加以下内容,我这里安装的是java8,根据自己的情况修改:

1
2
3
4
5
6
7
8
JAVA_HOME=/usr/lib/jvm/java-8-oracle
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME
export JRE_HOME
export CLASSPATH
export PATH

使用以下命令使环境变量配置立即生效:

1
source .bashrc

通过以下命令验证环境变量的配置:

1
2
3
4
echo $JAVA_HOME
echo $JRE_HOME
echo $CLASSPATH
echo $PATH

输出中应该会包含你刚设置的路径了

通过修改/etc/profile或/etc/environment来修改全局java环境变量
如果要修改整个系统,包括系统内的所有用户的java环境变量,可以通过修改/etc/profile而不是修改~/.bashrc来实现,因为所有用户登录系统后都会自动加载/etc/profile中的配置,修改方式与上面完全一样。

或者通过修改/etc/environment来实现,只需要将以下内容追加到文件最后,然后通过source /etc/environment加载即可:

1
2
3
4
JAVA_HOME=/usr/lib/jvm/java-8-oracle
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

卸载

正常通过apt-get卸载

1
sudo apt-get remove --purge oracle-java8-*

然后删除自己添加的环境变量即可

通过手动去oracle官网下载后安装

其实上面的ppa也是从oracle下载编译好的包,然后解压后配置环境来实现的,只是那个解压等工作自动完成了。

下载java

去oracle官网的java下载页面http://www.oracle.com/technetwork/java/javase/downloads/index.html 找到需要的链接,然后使用wget下载即可,注意由于wget不能自动重定向,所以需要加上前面那些验证,同样为了保证https的证书问题,加上了--no-check-certificate

1
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u112-b15/jdk-8u112-linux-x64.tar.gz

由于刚才通过ppa自动安装的是8u111的版本,所以这里安装8u112版本。

安装java

首先为java创建解压目录:

1
sudo mkdir /usr/java

解压刚下载的jdk压缩包到/usr/java目录:

1
sudo tar --strip-components=1 -zxvf jdk-8u112-linux-x64.tar.gz -C /usr/java/

如果系统中只有这一个java,可以直接根据上面的方法设置环境变量即可,设置完成环境变量即算是已经安装成功,但并没有被设置为系统默认的java

设置为系统默认JDK

执行以下命令为系统添加可选的java版本:

1
2
3
4
5
sudo update-alternatives --install /usr/bin/java java /usr/java/bin/java 300  
sudo update-alternatives --install /usr/bin/javac javac /usr/java/bin/javac 300
sudo update-alternatives --install /usr/bin/jar jar /usr/java/bin/jar 300
sudo update-alternatives --install /usr/bin/javah javah /usr/java/bin/javah 300
sudo update-alternatives --install /usr/bin/javap javap /usr/java/bin/javap 300

注意最后那个300是表示优先级,可以修改为其他数值

执行以下命令选择需要的JDK:

1
sudo update-alternatives --config java

剩下的环境变量及测试的方式与上面一样。

卸载

直接删除自己设置的解压目录即可

1
sudo rm -rf /usr/java

记得删除自己设置的环境变量