记录一次在 centos 虚拟机 中 安装 Java环境

解压 jdk 到指定位置

首先,有一个 Java  环境的 jdk 包:jdk-8u191-linux-x64.tar.gz

其次,把这个 jdk 移动到虚拟机里面,最好不要直接就放到 ~ 目录中( ~ 目录就是  /home/你的用户名字),建议放到 /usr/loacal/java 目录下

因此,有如下命令和对应的命令执行时返回输出:

[root@localhost ~]# mkdir -p /usr/local/java

[root@localhost ~]# sudo mv ~/jdk-8u191-linux-x64.tar.gz /usr/local/java/

[root@localhost ~]# cd /usr/local/java
[root@localhost java]# ls
jdk-8u191-linux-x64.tar.gz

[root@localhost java]# sudo tar -zxvf jdk-8u191-linux-x64.tar.gz 
jdk1.8.0_191/
jdk1.8.0_191/javafx-src.zip
jdk1.8.0_191/bin/
jdk1.8.0_191/bin/jmc
jdk1.8.0_191/bin/serialver
jdk1.8.0_191/bin/jmc.ini
jdk1.8.0_191/bin/jstack
jdk1.8.0_191/bin/rmiregistry
jdk1.8.0_191/bin/unpack200
...
...
jdk1.8.0_191/jre/lib/fontconfig.SuSE.10.properties.src
jdk1.8.0_191/jre/lib/fontconfig.SuSE.11.bfc
jdk1.8.0_191/jre/COPYRIGHT
jdk1.8.0_191/jre/THIRDPARTYLICENSEREADME-JAVAFX.txt
jdk1.8.0_191/jre/Welcome.html
jdk1.8.0_191/jre/README
jdk1.8.0_191/README.html

# 至此,jdk 解压完毕啦,进入对应的java 目录,
# 应该能看的解压好的安装包对应的文件夹
# (我的是叫 jdk1.8.0_191, 你的可能不是这个名字,这个名字在 jdk 中指定的)

[root@localhost java]# ls
jdk1.8.0_191  jdk-8u191-linux-x64.tar.gz

[root@localhost java]# cd jdk1.8.0_191/
[root@localhost jdk1.8.0_191]# ls
bin        include         jre  LICENSE  README.html  src.zip                             THIRDPARTYLICENSEREADME.txt
COPYRIGHT  javafx-src.zip  lib  man      release      THIRDPARTYLICENSEREADME-JAVAFX.txt

设置环境变量

要让系统认识这个 JDK,需要设置环境变量。最常用的是修改 /etc/profile(系统全局生效)

由于我们解压后的目录是 : /usr/local/java/jdk1.8.0_191

 因此,想要永久生效,需要 编辑 /etc/profile( 注意编辑的时候需要 sudo)

sudo vi /etc/profile

在末尾加:

export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

注意 配置 JAVA_HOMEPATH、CLASSPATH 等环境变量 是根据你解药jdk包的位置指定的 

修改后的配置文件如图所示: 

 

然后让配置立即生效,执行:

source /etc/profile

通过命令 查看version 看环境是否配置成功

[root@localhost jdk1.8.0_191]# source /etc/profile

[root@localhost jdk1.8.0_191]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

环境变量配置的延伸:
 

为什么我把profile 对应的Java都注释掉了,然后也source了,为什么:
[root@hadoop101 profile.d]# java -version java version "1.8.0_191" Java(TM) SE Runtime Environment (build 1.8.0_191-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
依旧有返回 ?

Linux 的环境变量是「进程级别」的:

  • 每次你登录 ssh / 开新终端,都会新建一个 shell 进程

  • 这个新进程会重新加载 /etc/profile/etc/profile.d/*.sh

  • 所以只需要重新登录 / 新开一个 shell 就能看到新配置生效 / 旧配置失效


/etc/profile  vs  /etc/profile.d/

/etc/profile/etc/profile.d/*.sh
本质主配置文件(脚本)存放子脚本目录
加载时机用户登录交互式 shell 时/etc/profile 里自动循环 source 所有 *.sh
风险覆盖会影响整个系统每个小脚本独立,不影响其他
推荐不直接改动推荐新建脚本放这里

由于在 /etc/profile  上增加 Java的环境变量相当于在系统环境配置上增加 Java配置,

当我们有分发配置的运维需求时,就有些难以处理,因此,更推荐使用下述的 profile.d的方式:

为什么生产环境都推荐用 profile.d/

  • 不破坏系统原有配置

  • 更易管理:想删环境变量就删对应脚本

  • 多个软件各放一个脚本,不会相互覆盖

 

具体操作(假设你三台机器 /usr/java 里已经有 jdk1.8.0_191)

如果还没有,那么执行:

  scp -r /usr/java/ hadoop103:/usr/    就可以把hadoop101 的 /usr/java/ 文件夹下属的内容全部移动到 hadoop103 中了

1) 在 hadoop101 上创建:
cat >/etc/profile.d/java.sh <<EOF
export JAVA_HOME=/usr/java/jdk1.8.0_191
export PATH=\$JAVA_HOME/bin:\$PATH
EOF

2) 在 hadoop101机器上执行下述命令,将配置文件分发到 hadoop102 和 hadoop103:

[root@hadoop101 profile.d]# scp /etc/profile.d/java.sh hadoop102:/etc/profile.d/
java.sh                                                                             100%   73   147.9KB/s   00:00    
[root@hadoop101 profile.d]# scp /etc/profile.d/java.sh hadoop103:/etc/profile.d/
java.sh                                                                             100%   73   169.2KB/s   00:00    
3) 立即生效:

在每台机器(101/102/103)执行:

source /etc/profile.d/java.sh

4) 测试: 

java -version

JDK 位置移动

由于配置部署需要,我要将jdk移动个位置,这时候,涉及到一个相当重要,且小白都会担心的事情:

        我不知道我这么 mv移动后,我是不是就全都移动完毕了?会不会Java还有什么东西散落在其他我不知道的角落,然后由于我就只是移动了这个 jdk1.8.0_191 文件夹,其他的没兼顾到,反而出错?

回答是:真正 Java 能运行的,只需要那个 jdk1.8.0_191 目录,它本身就是一个完整的、自包含的运行时,里面该有的都有:bin、lib、include、jre …
Java 没有散落在别处,不需要担心。

我的当前文件夹内容如下:

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值