CentOS 7安装 jdk1.8
1、Cent OS中默认安装了open jdk
(1)查看默认安装的jdk
[root@localhost html]# java -version
openjdk version "1.8.0_65"
OpenJDK Runtime Environment (build 1.8.0_65-b17)
OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)
但这个jdk并不是大家项目中,开发用的jdk,在我们部署系统的时候,需要用sun jdk替换掉open jdk。
(2)先来看看sun jdk是什么样的
[root@Beta-nginx conf]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
(3)两个jdk有什么区别
百度了一下,简单来说就这么几条
- 授权协议不同
- OpenJDK不包含Deployment(部署)功能
- OpenJDK源代码不完整
- OpenJDK只包含最精简的JDK
- 不能使用Java商标
简单来说,就是OpenJDK是开源版本,你可以用,但是功能不完整,但是不能用Java商标;而Sun JDK,Sun公司被甲骨文(Oracle)收购后,改名叫了Oracle JDK
而甲骨文这个心机婊总共花了74亿美元收购Sun,8个月后,就起诉Google的Android侵权,索赔88亿美元,哈哈,真特么逗。
骄傲的Google被资深心机婊坑了,要赔88亿美金
扯得有点远了,回来看看如何安装sun jdk吧(就是不改口oracle jdk,气死丫的)
2、Java SE、EE、ME
搜索jdk,进入java下载页,
SE、EE、ME有什么区别?懵逼吗?
记得09年,下班的路上,Java开发同事就给我们几个测试讲这3个的区别,这些年也反复看,不理解,还是不理解,所以,我就不误导你了。
我们用SE这哥们就行了
然后下滑页面,找到需要的版本,我这里选择jdk 1.8,然后找到右侧的JDK,点击Download按钮
可以看到,
(1)上面显示了版本
(2)下面左侧是适用于不同操作系统的jdk,有Linux arm的,有Linux x86的(32位操作系统),有Linux x64的(64位操作系统)。另外还有mac os的,有Solaris(Unix,这个你应该听说过),还有windows的。
arm和x64或x86的区别在于CPU架构不同,使用的指令集不同。
你可能有个问题,你的服务器是arm还是x86架构,是32位还是64位呢?
[aaa@qq.com tools]# uname -a
Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
可以看到我的机器是x64
(3)右侧显示了不同格式的包
有rpm包,可以理解为windows中的.exe安装包,需要安装
有.tar.gz,可以理解为windows中的绿色包,解压即可用
3、安装Sun JDK1.8
(1)点击Accept License Agreement
(2)在要下载的版本上面,右键,复制链接
(3)回到SecureCRT,使用wget命令下载
[root@localhost tools]# wget http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz
上面我下载的是.tar.gz包
但是在解压的时候总是报不是gz文件,搜索了下原因,有人推荐本地下载后,然后上传
(4)重新上传本地下载的tar.gz文件,解压
[root@localhost tools]# tar -zxvf jdk-8u171-linux-x64.tar.gz
[root@localhost tools]# ls
jdk1.8.0_171 jdk-8u171-linux-x64.tar.gz
(5)配置环境变量
#set java environment
JAVA_HOME=/usr/local/tools/jdk1.8.0_171
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
试试吧,还不行,对不对,请看下一步
(6)最后一步
文章开头我们说了,centos内置已经装了openjdk,并且我们敲命令就可以用,所以它应该已经加入到了环境变量。
我们第5步,只是加入了环境变量。但是还需要
安装完成后,看看/usr目录下是否已经有了java目录,有了表示正常安装了。
此时java -version的时候还会发现java版本还是 OpenJDK。
这个时候进入/usr/bin目录 查找java javac 可以发现,这两个符号链接指向系统默认的jdk目录。删除java javac
[root@localhost bin]# ln -s /usr/local/tools/jdk1.8.0_171/bin/java java
[root@localhost bin]# ln -s /usr/local/tools/jdk1.8.0_171/bin/javac javac
或者试试下面的方法(我没试)
(1)
/etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera/
export PATH=JAVA_HOME/bin
export JRE_HOME=”JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/rt.jar
修改完成后,使用source /etc/profile 命令进行更新;
(2)下面这几步比较重要,因为在许多linux系统中都预装了openjdk,所以即使上面进行了这些设置,系统默认的还不是我们要设置的内容;如果要真正使用我们自己的jdk,还需要一下步骤:
sudo update-alternatives –install /usr/bin/java java /usr/java/jdk1.7.0_67-cloudera/bin/java 300
sudo update-alternatives –install /usr/bin/javac javac /usr/java/jdk1.7.0_67-cloudera/bin/javac 300
(这里的300只是标识一下,没什么意义,只是下一步要用到)
(3)大功告成,使用java -version 命令来查看我们的java环境变量,显示如下内容:
java version “1.7.0_05”
Java(TM) SE Runtime Environment (build 1.7.0_05-b06)
Java HotSpot(TM) Server VM (build 23.1-b03, mixed mode)
- 对于更新一个 /usr/bin/xxx 命令指向一个新的路径可以用 sudo update-alternatives –config xxx
好了,来看看java版本
[root@localhost bin]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
终于搞定了,泪流满面啊。
上一篇: Spring入门开发