阿里云
1024开发者盛宴之Java专家问答专场
发表主题 回复主题
  • 1337阅读
  • 0回复

在 RHEL/CentOS 上安装 OpenJDK 和 Oracle JDK

级别: 论坛版主
发帖
9346
云币
14142
M "\j7(  
!v\ _<8  
前言 RQO&F$R=  
WlHK  
lS96sjJp@  
本教程将向您展示如何在 RHEL 7 和 6,同样适用于基于 RHEL 的 CentOS 以及其他发行版。Java 是一种非常流行的软件平台,在 Web 应用领域有着非常不错的使用率和优势。 = P@j*ix  
教程将涵盖以下Java版本的安装
  1. OpenJDK
  2. Oracle Java
`Kb"`}`_vm  
F tw ;T|  
U-ADdO h"q  
介绍 8Cef ]@x  
_eZ*_H,\  
UlQS]f~  
GyQ9we~  
名称 )cV*cDL1j  
=-%10lOI  
'`sZo1x%f  
Java 其实是一个很尴尬的一个词了,比如说一个软件说我需要安装 Java 1.7 的环境,结果你好不容易从国内搜索引擎中搜索 Java 绕开了一堆下载站找到 Oracle 的 Java 官方后,结果又有什么 JAVA SE、EE、ME、JDK、JRE 啥的。然后找到了 JDK 又发现是 7 8 9 命名的,要 1.7 是什么鬼? fWs@ZCt  
yp?a7t M  
G7N Rpr  
JRE: Java Runtime Environment 05 o vz   
JDK: Java Development Kit jxqKPMf>@%  
$_f"NE}  
b <z)4  
JRE 是 Java 运行时环境,包含了 Java 虚拟机,Java 基础类库。是使用 Java 语言编写的程序运行所需要的软件环境,是提供给想运行 Java 程序的用户使用的。 bw8[L;~%_  
#5X535'ze  
gGE&}EoLU  
JDK 是 java 开发工具包,是程序员使用java语言编写j Java 程序所需的开发工具包,是提供给程序员使用的。JDK 包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具:Jconsole,Jvisualvm 等工具软件,还包含了 Java 程序编写所需的文档和 Demo 例子程序。 f)19sjAJk  
<^da-b>C  
"I,=L;p  
而 Java 又有三种平台,标准版(SE),企业版(EE)和微型版(ME)。当然了 JavaEE 现在已经被 Eclipse 基金会接管改名 Jakarta EE 了。 >K n7A  
\e9rXh%  
`e4gneQY  
这三个平台的主要区别就在于基础类库的不同,也正是因为这些基础库的不同,导致他们的针对性不同。 zVvL!  
:^rt8>~  
2y5d  
Jakarta EE 是其中类库最多的,针对服务、Web应用等大型程序。 qO{Yr$ V%  
XiO~^=J  
wl/1~!  
Java SE 包含最普遍的类库,针对的是普通 Java 程序。 "cz'|z`  
/Ref54  
.]YTS  
Java ME 进行了进一步缩减,减少了整个环境的占用空间,针对性能不高的嵌入式环境。 He*c=^8k  
CB^.N>'  
Q.,2G7[ <  
一般来说在云服务中要运行 Java 环境我们 安装 JDK 即可。 RXRoMg!-P  
s("\]K  
版本 lWakyCS  
1) Nj.#)  
$X,dQ]M  
在版本上么,大家都以大的 Java 叫,比如说 Java 8、Java 9 和最新出的 Java 10。同时也会对应硕士 1.8 1.9 这样的叫法。 Ay0.D FL  
[`kk<$=,&  
变体 NwyNl  
N6HeZB" :  
`\$EPUM  
Java还有两种不同的实现:OpenJDK 和 Oracle Java。这两种实现都基于相同的代码,但 OpenJDK 完全是开源的,而 Oracle Java包含一些专有代码。大多数 Java 应用程序都可以在两者之间正常工作,具体以软件的运行环境说明为准。 ?$#P =VK  
^^B~v<uK  
安装 cH6++r  
Y@Ur}  
)4TP{tp  
b|-S;cw  
OpenJDK *x:*Q \|  
14DhJUV"b  
zGNmc7  
尽管目前 OpenJDK 已经推出到了 10 系列,但是主流的发行版可能还没有支持,很多发行版可能才只是刚刚支持到 9。 IGOEqUw*  
&z#`Qa3NI  
搜索 OpenJDK =Z ql6D  
ey6ujV7!  
~@DdN5  
我们可以用不同发行版的包管理工具来搜索一下发行版支持的 OpenJDK 版本: 5z&>NI  
RHEL/CentOS 上搜索 OpenJDK : K#Zv>x!to  
  1. yum search java | grep openjdk
  2. java-1.6.0-openjdk.x86_64
  3. java-1.7.0-openjdk-headless.x86_64
  4. java-1.8.0-openjdk-headless.x86_64
'<s54 Cb  
wXtp(YwlH  
c:[ ZknnCe  
Fedora 上搜索 OpenJDK : /;kSa}"Q  
  1. dnf search java | grep openjdk
  2. java-1.6.0-openjdk.x86_64
  3. java-1.7.0-openjdk-headless.x86_64
  4. java-1.8.0-openjdk-headless.x86_64
{ [3xi`0-  
}3_ >  
安装 OpenJDK 1m5*MY  
[+_>g4M~%  
N=\weuED  
知道我们的发行版的软件源中支持的发行版版本后,我们选择一个版本进行安装。 yfal'DqKF  
安装 OpenJDK 6:
  1. yum install java-1.6.0-openjdk-headless java-1.6.0-openjdk java-1.6.0-openjdk-devel
loC~wm%Ql  
rsq?4+\  
安装 OpenJDK 7:
  1. yum install java-1.7.0-openjdk-headless java-1.7.0-openjdk java-1.7.0-openjdk-devel
}|%1LL^pB  
`?O0)  
安装 OpenJDK 8:
  1. yum install java-1.8.0-openjdk-headless java-1.8.0-openjdk java-1.8.0-openjdk-devel
q}!h(-y}5n  
- AU{Y`j  
OpenJDK 也有提供 9、10 版本,但是发行版没有提供,可以到 OpenJDK 官网下载安装:
  1. http://jdk.java.net/10/
  2. http://jdk.java.net/9/
f!#+cM  
:yRv:`r3Lt  
Oracle Java G:3szz  
S@g(kIo]  
0?}n(f!S  
我们将使用该 wget 命令下载 Oracle Java 软件包,以上面 OpenJDK 在 RHEL 软件源中没有提供的 9 和 10 版本为例吧。 Z #T  
|B^Mj57DO  
安装 Oracle Java JRE g+5c"Yk+u~  
XMiu}w!  
[Ky3WppR  
为了安装 Oracle Java JRE,我们需要到 Oracle Java 9 JRE 的下载页面,接受许可协议,并复制相应Linux .rpm软件包的下载链接,用复制的下载。 VZq~ -$  
tJ 2GSZ`  
N/ f7"~+`  
Oracle Java 9 JRE 下载页面: http://www.oracle.com/technetwork/java/javase/downloads/jre9-downloads-3848532.html \ H~zN]3^  
Oracle Java 10 JRE 下载页面:http://www.oracle.com/technetwork/java/javase/downloads/jre10-downloads-4417026.html O=;jDWE  
然后下载
  1. wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://下载地址"
& +*OV:[;  
L7d1)mV  
例如:
  1. wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/10+46/76eac37278c24557a3c4199677f19b62/jre-10_linux-x64_bin.rpm"
dI&Q5M8  
&!OEd ]  
进行安装,注意最后的文件名:yum install jre-10_linux-x64_bin.rpm FJ-H ;  
IvT><8<G  
安装 Oracle Java JDK T N1pg  
b>Y{,`E3  
Pc_aEBq  
老样子,到 Oracle Java 9 JDK 的下载页面,接受许可协议,并复制相 应Linux .rpm 软件包的下载链接,用复制的下载。 :aK?DtZ  
Oracle Java 9 JDK 下载页面: http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html FY ms]bv  
Oracle Java 10 JDK 下载页面:http://www.oracle.com/technetwork/java/javase/downloads/jdk10-downloads-4416644.html >mai v;  
然后下载:
  1. wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://下载地址"
IO:*F0  
2ozh!8aL  
例如:
  1. wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/10+46/76eac37278c24557a3c4199677f19b62/jdk-10_linux-x64_bin.rpm"
6,a H[ >W  
xC,x_:R`  
进行安装,注意最后的文件名:"
  1. yum install jdk-10_linux-x64_bin.rpm
}!AS?  
X!p`|i  
z -!w/Bv@  
设置 |Ha#2pt{bc  
USEb} M`  
8 {V9)U  
lI 4tW=  
查看版本  C/IF~<B  
Aj)Q#Fd[  
!: ^q_q4  
安装成了如何检验?java -version $2Whb!7Z(  
输入上述命令就会反馈结果了: _r*\ BM8y  
  1. [root@www.mf8.biz ~]# java -version
  2. java version "10" 2018-03-20
  3. Java(TM) SE Runtime Environment 18.3 (build 10+46)
  4. Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10+46, mixed mode)
 k~ ^4  
njF$1? )sq  
;^5k_\  
bI55G#1G  
多版本选择 eF,F<IJT{  
O\ZC$XF  
('tXv"fT  
如果我们安装了多个 JAVA,例如 OpenJDK 也有,Oracle JDK 也有,那么咋办呢? e@Lxduq  
通过 alternatives 命令,可以用来选择默认的Java命令。 x9vSekV  
  1. [root@www.mf8.biz ~]# alternatives --config java
  2. There are 2 programs which provide 'java'.
  3.   Selection    Command
  4. -----------------------------------------------
  5.    1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/java)
  6. *+ 2           /usr/java/jre-10/bin/java
  7. Enter to keep the current selection[+], or type selection number:
(?fU l$q\  
?vFy3  
#wI}93E  
j#1G?MF  
带星号的就是选中的默认版本,输入数字可以调整不同的版本。 `m7<_#Y  
mdWA5p(  
使用环境变量 #h5lz%2g  
m&:&z7^p  
Aqmpo3P[+  
许多Java应用程序使用 JAVA_HOME 或 JRE_HOME 环境变量来确定 Java 要使用哪个可执行文件。 v;x0=I&%  
例如,如果安装了 Java /usr/java/jdk1.8.0_161/jre/bin(即可 Java 执行文件位于/usr/java/jdk1.8.0_161/jre/bin/java),则可以将JAVA_HOME环境变量设置为 bash shell 或脚本,如下所示:
  1. export JAVA_HOME=/usr/java/jdk1.8.0_161/jre
BDB*>y7(  
Vr1}Zv3K'  
如果想要以 JAVA_HOME 认为系统中的每个用户设置,请将上一行添加到 /etc/environment 文件中。将其附加到文件的简单方法是运行此命令:
  1. sh -c "echo export JAVA_HOME=/usr/java/jdk1.8.0_161/jre >> /etc/environment"
{^WK#$]  
EtKq.<SJ  
[ 此帖被妙正灰在2018-03-31 18:48重新编辑 ]
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个