Ubuntu下JDK配置和安装

来源:互联网 发布:安装打印机没有usb端口 编辑:程序博客网 时间:2024/05/29 18:48
  • 安装SunJDK

    首先,安装SunJDK, 有的文章说可以通过Ubunttu的命令方式自动安装:

     hadoop@root:~$ sudo apt-get install sun-java6-jdk

我们采用的是手动安装的方法:
先到sun 官网,www.sun.com 下载 JDK。(sun已经被oracle收购了,因此会自动重定向到oracle官网),这里我们下载的是jdk-8u121-linux-x64.tar.gz,因为这里先假设的是Ubuntu 64位。应对你的需求,可以下对应的版本,比如32位的jdk。
比如,安装到/opt目录中,先使用mv命令,将该bin文件移动到opt目录下:

    hadoop@root:~$ sudo mv Download/jdk-8u121-linux-x64.tar.gz /opt

然后切换到/opt目录下,解压文件:

    hadoop@root:/opt$ sudo tar -zxvf jdk-8u121-linux-x64.tar.gz 
  • 设置JAVA_HOME环境变量:

    如果设置全局的环境变量(针对所用用户):

     hadoop@root:/opt$ sudo gedit /etc/profile     添加如下类型:       export JAVA_HOME=/opt/jdk-8u121-linux-x64       export  PATH=$JAVA_HOME/bin:$PATH       export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib
  把上面添加的,原封不动的copy到文件末尾。

(PS,Linux的路径分割符是冒号“:”,大家知道Win下是分号“;”,此处切忌不要在分号前后留空白,鄙人曾经为了好看些,就人为的加入了些前后空格,结果可想而知,所有命令都没法用了,后果很严重啊!打开shell,还会报:bash:
export: `/opt/jdk-8u121-linux-x64/bin:’: not a valid identifier)

当然也可以基于安全考虑,只针对当前用户设置环境变量:

      hadoop@root:$ gedit .bashrc

把上面三行export语句copy到文件末尾即可。

  • 设置默认JDK

    SUN JDK已经算安装完毕,可当我们用java -version时发现,仍旧是使用的老的OpenJDK。
    需要我们更改系统的默认JDK设置:

hadoop@root:/opt$ sudo update-alternatives --install /usr/bin/java java /opt/jdk-8u121-linux-x64/bin/java 300hadoop@root:/opt$ sudo update-alternatives --install /usr/bin/javac javac /opt/jdk-8u121-linux-x64/bin/javac 300update-alternatives: using /opt/jdk-8u121-linux-x64/bin/javac to provide /usr/bin/javac (javac) in auto mode.

接下来,我们先看看,系统中已经存在的JDK:

hadoop@root:/opt$ sudo update-alternatives --list java/opt/jdk-8u121-linux-x64/bin/java/usr/lib/jvm/java-6-openjdk/jre/bin/java
  • 配置
    hadoop@root:/opt$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).Selection Path Priority Status* 0   /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode  1   /opt/jdk-8u121-linux-x64/bin/jav           300       manual mode  2   /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual modePress enter to keep the current choice[*], or type selection number: 1update-alternatives: using /opt/jdk1.6.0_26/bin/java to provide /usr/bin/java (java) in manual mode.

* 表示当前的默认JDK,可以看出是OpenJDK,同时可以看到刚安装的Sun JDK,序号为1,且之前设置的状态值300。
这里需要你输入设置默认的序号,这里当然我们选1。
这里,你可以再次执行该命令来查看我们的设置是否ok:

hadoop@root:/opt$ sudo update-alternatives --config javaThere are 2 choices for the alternative java (providing /usr/bin/java).Selection    Path   Priority   Status------------------------------------------------------------  0   /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode* 1   /opt/jdk1.6.0_26/bin/java       300                  manual mode  2   /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual modePress enter to keep the current choice[*], or type selection number: 1

由于这里已经成功设置了Sun JDK,所以,这里重复选择后,没有效果了。
- 验证默认JDK
注销后重新登录,使用命令java -version

hadoop@root:~$ java -versionjava version "1.8.0_121"Java(TM) SE Runtime Environment (build 1.8.0_121-b13)Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

可以看到,已经是默认的Sun JDK了

PS:我们在生产环境中一般会用多个用户,而我们的配置文件一般都会放在/etc/profiel中,但是我们切换用户后,会发现有些设置的环境变量失效了,需要手动source /etc/profile才行,这时候我们可以将source /etc/profile加入到.bashrc文件中就可以了!

1 0