专栏首页Jed的技术阶梯在Linux中安装JDK

在Linux中安装JDK

Linux中安装JDK

1. 软件准备

JDK安装包 下载地址:http://www.oracle.com/technetwork/java/javase/archive-139210.html

我这里使用 jdk-8u73-linux-x64.tar.gz

2. 手动安装JDK的步骤

(0) 查看系统中是否已经安装了JDK,如果有就卸载掉

[root@node01 ~]# rpm -qa | grep jdk
java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64
java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.x86_64
[root@node01 ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64
[root@node01 ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.x86_64

(1) 把JDK安装包上传到服务器并解压

[root@node01 ~]# tar -zxvf jdk-8u73-linux-x64.tar.gz -C /usr/local/

(2) 配置环境变量

系统级别的环境变量配置文件为/etc/profile 普通用户的环境变量配置文件为/home/用户名/.bashrc或者/home/用户名/.bash_profile 我是用root用户安装的JDK,所以修改/etc/profile文件,添加JDK的环境变量:

[root@node01 ~]# vim /etc/profile

# 在文件末尾追加以下内容
export JAVA_HOME=/usr/local/jdk1.8.0_73
export PATH=$PATH:$JAVA_HOME/bin

(3) 重新加载环境变量配置文件

[root@node01 ~]# source /etc/profile

(4) 验证

[root@node01 ~]# java -version
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)

安装成功!

3. 使用脚本批量安装JDK

我们现在有一个JDK安装包在一台服务器上(node01),那我们要实现JDK自动批量安装到node02、node03、node04上

(1) 实现思路

需要以下几个步骤:

  1. node01把包传到其他服务器,或者其他服务器通过本地yum源的方式去node01中取(我这里实现的是后者)
  2. 给每一台机器发送一个安装脚本,并且让脚本自己执行
  3. 要写一个启动脚本,用来执行以上两步操作

(2) 编写一个安装脚本 installJDK.sh

作用:

  • 负责从远程软件库(node01)下载 JDK 安装包
  • 负责 JDK 的安装
  • 负责 JDK 的环境变量配置

脚本内容:

#!/bin/bash

## 远程软件安装源(你可能需要修改这里)
BASE_SERVER=node01

## 为了防止系统没有安装 wget 工具,所以安装
yum install -y wget

## 远程下载(你可能需要修改这里的安装包所在的路径)
## 我的安装包放在/var/www/html/soft/下,所以我就写$BASE_SERVER/soft/
wget $BASE_SERVER/soft/jdk-8u73-linux-x64.tar.gz

## 解压到对应安装目录
tar -zxvf jdk-8u73-linux-x64.tar.gz -C /usr/local

## 配置环境变量
cat >> /etc/profile << EOF
  export JAVA_HOME=/usr/local/jdk1.8.0_73
  export PATH=\$PATH:\$JAVA_HOME/bin
EOF

## 删除安装包
rm -rf /root/jdk-8u73-linux-x64.tar.gz

## 检测安装是否成功
source /etc/profile
java -version

(3) 编写一个安装启动脚本 startInstallJDK.sh

作用:

  • 负责安装脚本 installJDK.sh 的分发
  • 负责安装脚本 installJDK.sh 的自动执行

脚本内容:

#!/bin/bash

## 要安装 JDK 的服务器目录列表
SERVERS=$*

## 密码(你可能需要修改)
PASSWORD=hadoop
## 软件源(你可能需要修改)
BASE_SERVER=node01
## 启动安装 installJDK.sh 脚本分发程序 和 自动安装
for SERVER in $SERVERS
do
# (你可以自定义这个路径)
scp installJDK.sh root@$SERVER:/root/
ssh root@$SERVER chmod 755 installJDK.sh
ssh root@$SERVER /root/installJDK.sh
done

(4) 运行演示

[root@node01 ~]# sh startInstallJDK.sh node02 node03 node04

该命令表示:在 node01 服务器上,用户 root 执行脚本 startInstallJDK.sh 在集群其他3个节点 node02 node03 node04 中安装了JDK

注意:

  1. 以上脚本执行需要配置集群各节点之间免秘钥登录,参考: 配置各台虚拟机之间免秘钥登录
  2. node01服务器必须安装httpd服务,并且启动该服务

安装httpd服务:

yum install httpd -y

启动httpd服务:

service httpd start
  1. 在node01的/var/www/html目录下放置安装包

我在其中又创建了soft目录,然后在soft目录下放置了JDK安装包,所以在我的installJDK.sh中,从node01下载JDK安装包的路径是这么写的: wget $BASE_SERVER/soft/jdk-8u73-linux-x64.tar.gz 如果你直接放在了/var/www/html目录下,你的路径应该是: wget $BASE_SERVER/jdk-8u73-linux-x64.tar.gz

(5) 验证

[root@node02 ~]# java -version
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)

[root@node03 ~]# java -version
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)

[root@node04 ~]# java -version
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java设计模式之单例模式

    这个模式是很有意思,而且比较简单,但是我还是要说因为它使用的是如此的广泛,如此的有人缘,单例就是单一、独苗的意思,那什么是独一份呢?你的思维是独一份,除此之外还...

    CoderJed
  • Java设计模式之模板方法模式

    假设我们现在要造一批悍马汽车,悍马汽车有两个系列H1和H2,首先不考虑任何设计模式,看看设计的类图:

    CoderJed
  • Linux设置本地yum源

    linux系统:CentOS-6.7 系统镜像:CentOS-6.7-x86_64-bin-DVD1.iso、CentOS-6.7-x86_64-bin-DV...

    CoderJed
  • 小朋友学Java(1):Mac系统安装JDK

    1 打开终端 方法可以参考http://blog.csdn.net/haishu_zheng/article/details/73410594 2 在终端输入 ...

    海天一树
  • 面试官:你和队友之间选一个淘汰,你怎么选?

    原文链接:https://zhuanlan.zhihu.com/p/31211416

    Java技术栈
  • 解决Pandoc wasn't found.pdflatex not found on PATH

    解决nbconvert failed: Pandoc wasn’t found.解决nbconvert failed: pdflatex not found o...

    王小雷
  • H3C Cloud Lab 安装与调试

    py3study
  • 程序员面试谈薪资的6大技巧

    提起薪资,我们作为求职者都想多要点,作为程序开发者 更需要一个好的敲门,身怀绝技, 如果不会谈薪 ,那就不就亏大了吗? 原文来自程序人生: http://ga...

    java思维导图
  • 面试被问ReentrantLock的公平锁与非公平锁

    面试被问ReentrantLock的公平锁与非公平锁的区别以及实现。 建议先阅读Java中的锁原理、锁优化、CAS、AQS,看这篇就对了!

    用户4143945
  • 程序员面试谈薪资的技巧

    程序你好

扫码关注云+社区

领取腾讯云代金券