使用CentOS 7.5卸载自带jdk安装自己的JDK1.8
本文主要介绍的是如何是Linux环境下安装JDK的,因为Linux环境下,很多时候也离不开Java的,下面笔者就和大家一起分享如何jdk1.8的过程吧。
一、安装环境
- 本机系统:Win 10
- 虚拟机软件:VMware PRO 14
- 虚拟机Linux系统:CentOS 7.5
- JDK版本:1.8.0_191
- 工具:SecureCRT
- 说明:本文是通过SecureCRT工具远程连接Linux操作,如果是直接在Linux可视化界面操作那就更方便了,原理一样。
二、安装步骤
- 下载安装包 下载Linux环境下的jdk1.8,请去(官网)中下载jdk的安装文件。 由于我的Linux是64位的,jdk-8u191-linux-x64.tar.gz下载链接
0、我们先有一个干净的Linux的环境 进行如下操作:
[root@itheima ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@itheima ~]# ll
总用量 0
1、检查一下linux系统中的jdk版本
[root@itheima ~]# java -version
显示如下:
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
2、检测linux下的jdk安装包
[root@itheima ~]# rpm -qa | grep java
或者
[root@itheima ~]# rpm -qa | grep jdk
显示如下:
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
tzdata-java-2018c-1.el7.noarch
java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
javapackages-tools-3.4.1-11.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64
或者
copy-jdk-configs-3.3-2.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64
3、先卸载openjdk(共4个文件)
[root@itheima ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
[root@itheima ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
[root@itheima ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
[root@itheima ~]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64
删完之后可以再通过:rpm -qa | grep java 或 rpm -qa | grep jdk 命令来查询出是否删除掉
[root@itheima ~]# rpm -qa | grep java
python-javapackages-3.4.1-11.el7.noarch
tzdata-java-2018c-1.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch
[root@itheima ~]# rpm -qa | grep jdk
copy-jdk-configs-3.3-2.el7.noarch
[root@itheima ~]#
4、安装新的Oracle JDK1.8
通过命令:cd /usr/local/
进入local目录,并通过ll(两个小写的L)
命令或者ls命令(ll 本身不是命令,只是 ls -l 命令的一个别名)
列出当前目录下得所有非隐含的文件,如果想要看到隐含(以. 开头的,如:.test.txt)文件信息可通过ll -a
来查看,如下:
[root@itheima ~]# cd /usr/local/
[root@itheima local]# ll
总用量 0
drwxr-xr-x. 2 root root 6 4月 11 2018 bin
drwxr-xr-x. 2 root root 6 4月 11 2018 etc
drwxr-xr-x. 2 root root 6 4月 11 2018 games
drwxr-xr-x. 2 root root 6 4月 11 2018 include
drwxr-xr-x. 2 root root 6 4月 11 2018 lib
drwxr-xr-x. 2 root root 6 4月 11 2018 lib64
drwxr-xr-x. 2 root root 6 4月 11 2018 libexec
drwxr-xr-x. 2 root root 6 4月 11 2018 sbin
drwxr-xr-x. 5 root root 49 11月 2 00:50 share
drwxr-xr-x. 2 root root 6 4月 11 2018 src
进入local目录之后通过mkdir java
命令来创建java目录存放自己的jdk。
扩展:如果你想一次性在同一级目录下创建多个平级的目录可以通过mkdir brother1 brother2
(如要创建更多就在后面加上去就可以了,中间用空格隔开)这样的命令来创建,如果要一次创建父子目录(parent/child)可以通过mkdir -p parent/child/grandson
来创建,如下:
[root@itheima local]# mkdir java
[root@itheima local]# ll
总用量 0
drwxr-xr-x. 2 root root 6 4月 11 2018 bin
drwxr-xr-x. 2 root root 6 4月 11 2018 etc
drwxr-xr-x. 2 root root 6 4月 11 2018 games
drwxr-xr-x. 2 root root 6 4月 11 2018 include
drwxr-xr-x. 2 root root 6 11月 8 19:01 java
drwxr-xr-x. 2 root root 6 4月 11 2018 lib
drwxr-xr-x. 2 root root 6 4月 11 2018 lib64
drwxr-xr-x. 2 root root 6 4月 11 2018 libexec
drwxr-xr-x. 2 root root 6 4月 11 2018 sbin
drwxr-xr-x. 5 root root 49 11月 2 00:50 share
drwxr-xr-x. 2 root root 6 4月 11 2018 src
5、使用SSH链接工具SecureCRT链接Linux系统,打开SFTP会话 将下载好的jdk安装包jdk-8u191-linux-x64.tar.gz上传至Linux系统的/usr/local/java目录下
sftp> pwd
/root
sftp> cd /usr/local/java/
sftp> pwd
/usr/local/java
sftp> put -r "C:UsersBruceDesktopjdk-8u191-linux-x64.tar.gz"
Uploading jdk-8u191-linux-x64.tar.gz to /usr/local/java/jdk-8u191-linux-x64.tar.gz
100% 187259KB 46814KB/s 00:00:04
C:UsersBruceDesktopjdk-8u191-linux-x64.tar.gz: 191753373 bytes transferred in 4 seconds (46814 KB/s)
sftp> put -r "C:UsersBruceDesktopjdk-8u191-linux-x64.tar.gz"
Uploading jdk-8u191-linux-x64.tar.gz to /usr/local/java/jdk-8u191-linux-x64.tar.gz
100% 187259KB 62419KB/s 00:00:03
C:UsersBruceDesktopjdk-8u191-linux-x64.tar.gz: 191753373 bytes transferred in 3 seconds (62419 KB/s)
sftp>
传输完成之后ll命令查看
[root@itheima java]# ll
总用量 187260
-rw-r--r--. 1 root root 191753373 11月 8 17:07 jdk-8u191-linux-x64.tar.gz
[root@itheima java]#
6、解压jdk-8u191-linux-x64.tar.gz安装包
[root@itheima java]# tar -zxvf jdk-8u191-linux-x64.tar.gz
解压过后出现如下:
......
......
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
[root@itheima java]# ll
总用量 187260
drwxr-xr-x. 7 10 143 245 10月 6 20:55 jdk1.8.0_191
-rw-r--r--. 1 root root 191753373 11月 8 17:07 jdk-8u191-linux-x64.tar.gz
这时安装包已经没用了,我一般都会删掉安装包,通过rm -f jdk-8u191-linux-x64.tar.gz
删除安装包。
这里-f
的意思就是不询问删除,如果你不加-f
在删除时它会询问你一下是否要删除该安装包,是确定要删除就加-f
。
如果你要删除一个目录,而这个目录下还有目录或者有文件,比如在parent/child/grandson,这样的目录下你要删除 parent 下得所有目录和文件(包括parent)就可以用到rm -rf parent
命令就可以删除掉了。rm -rf parent
表示递归删除不询问。
[root@itheima java]# rm -rf jdk-8u191-linux-x64.tar.gz
[root@itheima java]# ll
总用量 0
drwxr-xr-x. 7 10 143 245 10月 6 20:55 jdk1.8.0_191
[root@itheima java]#
7、设置环境变量
通过vim /etc/profile
命令打开 profile 文件盘配置环境变量
[root@itheima java]# vim /etc/profile
打开之后按i
进入insert(插入)模式
,在文件末尾添加上环境变量,内容如下:
JAVA_HOME=/usr/local/java/jdk1.8.0_191
JRE_HOME=/usr/local/java/jdk1.8.0_191/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
添加完之后保存并退出,保存并退出的命令有两种 第一种是:按住shift键然后连按两次z
(这是我常用的,因为它方便快速),第二种是:wq
命令,有一种是不保存退出的命令:q!
注意:以上三种命令都是在非插入模式
(插入模式下按键盘左上角的Esc键退出插入模式
就是非插入模式了)下操作。
8、保存完之后输入:source /etc/profile 命令使刚才配置的环境变量生效
[root@itheima java]# source /etc/profile
[root@itheima java]#
9、测试jdk是否安装成功
输入javac
命令如果出现以下的文字就说明编译成功了(如果你之前安装centos7时使用的语言是英文,那出现的就是类似这样排版的英文)
[root@itheima java]# javac
用法: javac <options> <source files>
其中, 可能的选项包括:
-g 生成所有调试信息
-g:none 不生成任何调试信息
-g:{lines,vars,source} 只生成某些调试信息
-nowarn 不生成任何警告
-verbose 输出有关编译器正在执行的操作的消息
-deprecation 输出使用已过时的 API 的源位置
-classpath <路径> 指定查找用户类文件和注释处理程序的位置
-cp <路径> 指定查找用户类文件和注释处理程序的位置
-sourcepath <路径> 指定查找输入源文件的位置
-bootclasspath <路径> 覆盖引导类文件的位置
-extdirs <目录> 覆盖所安装扩展的位置
-endorseddirs <目录> 覆盖签名的标准路径的位置
-proc:{none,only} 控制是否执行注释处理和/或编译。
-processor <class1>[,<class2>,<class3>...] 要运行的注释处理程序的名称; 绕过默认的搜索进程
-processorpath <路径> 指定查找注释处理程序的位置
-parameters 生成元数据以用于方法参数的反射
-d <目录> 指定放置生成的类文件的位置
-s <目录> 指定放置生成的源文件的位置
-h <目录> 指定放置生成的本机标头文件的位置
-implicit:{none,class} 指定是否为隐式引用文件生成类文件
-encoding <编码> 指定源文件使用的字符编码
-source <发行版> 提供与指定发行版的源兼容性
-target <发行版> 生成特定 VM 版本的类文件
-profile <配置文件> 请确保使用的 API 在指定的配置文件中可用
-version 版本信息
-help 输出标准选项的提要
-A关键字[=值] 传递给注释处理程序的选项
-X 输出非标准选项的提要
-J<标记> 直接将 <标记> 传递给运行时系统
-Werror 出现警告时终止编译
@<文件名> 从文件读取选项和文件名
[root@itheima java]#
或者输入java -version
[root@itheima java]# 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)
[root@itheima java]#
如果出现以上信息就说明你自己的jdk就完全安装成功了!!!
参考链接: https://blog.csdn.net/hui_2016/article/details/69941850 https://www.cnblogs.com/Dylansuns/p/6974272.html
- cookie、session、token三者使用
- SpringCloud注册中心集群搭建
- SpringCloud配置中心集群搭建
- HDU1846 Brave Game
- 拉格朗日插值
- python爬虫入门(二)Opener和Requests
- python爬虫入门(三)XPATH和BeautifulSoup4
- python爬虫入门(四)利用多线程爬虫
- LOJ #115. 无源汇有上下界可行流
- 数据库改名系列(数据库名,逻辑名,物理文件名)
- BZOJ1468: Tree
- 洛谷P3806 【模板】点分治1
- 探索ASP.NET MVC5系列之~~~5.缓存篇(页面缓存+二级缓存)
- 洛谷P3383 【模板】线性筛素数(Miller_Rabin)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Shiro学习笔记四(Shiro集成WEB)
- Shiro学习笔记五(Shiro标签,及通配符)
- Shiro学习笔记六(自定义Reaml-使用数据库设置 user roles permissions)
- Luncene学习 第一天 《入门程序》
- Luncene学习二《搜索索引》
- JavaWeb--简单分页技术
- 使用Python制作第一个爬虫程序
- 使用BeautifulSoup 爬取一个页面上的所有的超链接
- 使用PlaceHolder,测试碰见的问题
- 隐藏MySQL InnoDB Cluster / ReplicaSet实例
- MySQL8.0.21——错误日志中的组复制系统消息
- 【一】、搭建Hadoop环境----本地、伪分布式
- 在组复制中指定恢复IP地址
- START GROUP_REPLICATION可以将恢复凭据作为参数
- MySQL Shell转储和加载第1部分:演示!