CentOS8下的JDK安装

在这里插入图片描述

一、JDK简介

(一)JDK、JRE、JVM、JIT

1、JDK(Java Development kit),针对Java开发人员的产品,它包括了Java运行环境JRE、Java工具和Java基础类库,是java开发工具包。
java标准版开发工具包,里面包含了各种类库和工具。是Oracle提供的一套用于开发java应用程序的开发包,它提供编译,运行java程序所需要的各种工具和资源,包括java编译器,java运行时环境,以及常用的java类库等。
也包括了另外一个JRE. 那么为什么要包括另外一个JRE呢?而且jdk/jre/bin同时有client和server两个文件夹下都包含一个jvm.dll。说明是有两个虚拟机的。
2、JRE(Java Runtime Environment)运行Java程序所必须的环境的集合,它包含JVM及Java核心类库,是 Java运行环境
Java运行环境,它的全称Java Runtime Environment(JRE) ,因此也被称为JRE,它是运行java的必需条件。既然是运行,当然要包含jvm,也就是大家熟悉的虚拟机,还有所有java类库的class文件,都在lib目录下打包成了jar。
3、JVM(Java Virtual Machine),Java实现跨平台的最核心的部分,能够运行以Java语言编写的软件程序。
Java虚拟机,JRE包含JVM。JVM是运行java程序的核心虚拟机,还需要其他的类加载器,字节码校验器,以及大量的基础类库。JRM除了包含JVM之外,还包含运行java程序的其它环境支持。
4、JIT(Just in time),称为即时编译器,是JVM中调用方法时使用。JIT将被调用方法的字节码编译成本机代码,当一个方法在本机代码中编译时,JVM直接调用该方法的编译代码,而不是解释它。

(二)jdk中的目录

1、bin目录
是binary(字节码)的缩写,里面存放了JDK的各种工具命令即JDK开发工具的可执行文件(文件都是二进制的,其中包括编译器、解释器以及其他一些工具)该目录应当保存到PATH变量中。
作为JDK实用程序,文件中主要程序有以下几个:
(1)Java:Java解释器,直接从类文件执行Java应用程序字节代码。
(2)Javac:Java编译器,将Java源代码转换成字节码。
(3)appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
(4)Javadoc:根据Java源码及说明语句生成HTML文档。
(5)Jdb:Java调试器,可以逐行执行程序,设置断点和检查变量。
(6)Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
(7)Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
2、include目录
由于JDK是通过C和C++实现的,因此在启动时需要引入一些C语言的头文件,所以include目录里面是一些供C语言使用的标题文件,其中C语言的头文件支持Java本地接口和Java虚拟机调试程序接口的本地编程技术。
3、jre目录
jre(Java runtime environment即Java运行时环境)目录路径下安装的就是运行Java程序所必须的JRE环境。
打开jre文件下的lib目录,人们有可能疑惑为什么此目录下也有个java.exe程序,其实这个程序跟jdk的bin目录下的java.exe程序没有什么不同,都是运行java环境的。作为一名开发者,肯定是要运行环境的,因此sun公司(已被Oracle收购)在设计之初,就在安装JDK时会自动带上JRE。
那为什么带两个运行环境呢,尽管这两个JRE文件夹的内容基本相同,但区别主要体现在工作的职责上,也就是不同的JRE负责不同的工作范围。简单来说就是运行JDK中自己的java代码就用JDK中的java.exe,运行其他自定义的程序就用JRE下的java.exe。
4、lib目录
(1)lib是libarary(类库)的缩写。存放的是开发工具使用的归档包文件。例如jar包等,
(2)dt.jar是所谓DesignTime的东西,是给JavaBean和IDE用的;
(3)jconsole.jar是给jconsole工具用的;
(4)tools.jar包含了对开发工具的支持功能库。

(三)Java编译与解释并存:

高级编程语言按照程序的执行方式分为两种:
1、编译型︰编译型语言会通过编译器将源代码一次性翻译成可被该平台执行的机器码。一般情况下,编译语言的执行速度比较快,开发效率比较低。常见的编译性语言有C、C++、Go、Rust等等。
2、解释型︰解释型语言会通过解释器一句一句的将代码解释(interpret)为机器代码后再执行。解释型语言开发效率比较快,执行速度比较慢。常见的解释性语言有Python、JavaScript、PHP等等。

(四)java程序的运行

1、java程序的执行过程:
在这里插入图片描述

2、C语言编程与java语言编程对比:
在这里插入图片描述

二、CentOS8下 JDK 1.8.0安装

1、查看当前java的版本、检查是否存在jdk
(1)使用java -version命令查看
在这里插入图片描述
如上图:说明当前系统中没有安装java

(2)使用命令rpm -qa |grep java有显示java在这里插入图片描述
说明当前已经有的java版本

2、删除当前版本
(1)查看当前有哪几个安装包可删除:rpm –qa |grep java
(2)删除某个安装包:rpm –e –nodeps java-x.x.x-openjdk
(3)java -version再查看java是否存在

3、查看可安装的java版本:yum –y list java*
在这里插入图片描述

4、安装JDK:yum install java-1.8.0-openjdk-devel.x86_64
在这里插入图片描述
在这里插入图片描述
5、查看已经安装好的java版本:java -version

6、yum 命令安装默认安装路径为 /usr/lib/jvm
在这里插入图片描述

7、配置环境变量:vi /etc/profile
set java environment
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-3.e18.x86 64
export CLASS_PATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar: J R E H O M E / l i b P A T H = JRE_HOME/lib PATH= JREHOME/libPATH=PATH: J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
在这里插入图片描述
8、执行source /etc/profile
9、查看环境变量更新后的结果中有jdk的路径
echo $PATH
在这里插入图片描述
10、若未知是否已配置JAVA_HOME
(1)查找本机中JDK安装的位置
Find / -name java
在这里插入图片描述

(2)编辑环境变量 Vim /etc/profile
执行环境变量 source /etc/profile
在这里插入图片描述
(3)执行$JAVA_HOME,能正常显示一个路径
在这里插入图片描述

JDK环境安装完成,本文至些结束,不足之处敬请批评指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/201197.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器连接和工业边缘计算

软件应用和IT创新是制造业投资的主要驱动力。解决方案架构应围绕特定标准进行整合,并采用架构蓝图和最佳实践来满足最终用户的需求。此外,边缘计算(Edge Computing)也将在制造业中加速部署。 边缘计算是制造业的下一个变革驱动力。…

电商系统重要概念SPU、SKU、基本属性、销售属性

1. 什么是SPU?什么是SKU? SPU 和 SKU 是两个常用于零售和库存管理的术语,它们分别代表了不同的商品分类层次。 SPU(Standard Product Unit,标准产品单元):SPU 指的是一种基于其功能或属性进行分…

解决vue ssr服务端渲染运行时报错:net::ERR_PROXY_CONNECTION_FAILED

现象: 从代码里找了半天也没有找到问题,但是由于ssr服务端渲染配置本身非常复杂,步骤又繁琐, 而且报错又很多,不知道哪里出了问题。 感觉是header或者cookie丢失造成的,因为据说ssr本身有这样的缺陷&…

Python---对象的属性添加与获取

1、什么是属性 在Python中,任何一个对象都应该由两部分组成:属性 方法 属性即是特征,比如:人的姓名、年龄、身高、体重…都是对象的属性。 车的品牌、型号、颜色、载重量...都是对象的属性。 对象属性既可以在类外面添加和获…

CCKS2023-面向金融领域的主体事件检测-亚军方案分享

赛题分析 大赛地址 https://tianchi.aliyun.com/competition/entrance/532098/introduction?spma2c22.12281925.0.0.52b97137bpVnmh 任务描述 主体事件检测是语言文本分析和金融领域智能应用的重要任务之一,如在金融风控领域往往会对公司主体进行风险事件的检测…

uniapp的subnvue苹果适配(ios)谷歌地图问题

谷歌地图,google地图,调整宽度。这个适配花了点时间,苹果IOS宽度一直无效失灵,赶紧记录分享,很坑。可能所有的ios的subnvue适配都这样。看了网上很多方法无效,最终找到试出答案。 pages.json的配置宽度无效…

logging 日志完整应用实例

日志文件函数:日志相关设置 logfile.py import logging def logg():# LOG_FORMAT "%(asctime)s - %(levelname)s - %(message)s"LOG_FORMAT "%(asctime)s - %(levelname)s - %(filename)s, line:%(lineno)d - %(message)s" # 带有文件名、行…

Linux使用root用户安装完MySQL软件后,配置MySQL这个普通用户登录

在 Linux 系统中,当您使用 root 用户安装 MySQL 后,系统会自动创建一个名为 mysql 的系统用户。这个 mysql 用户主要用于管理 MySQL 服务的运行,通常是没有登录系统的权限的。如果您希望使这个 mysql 用户能够登录到系统,您需要设…

解决ssr服务端渲染程序启动报错: ReferenceError: location is not defined

现象: 原因:chatgpt给出的解释很到位: 该错误表明代码尝试访问 location 对象,该对象通常在浏览器环境中可用。 然而,你的服务器端代码正在 Node.js 环境中运行,而在这个环境中 location 对象未定义。 问…

【总结】ES 7.x 配置用户名和密码访问(亲测可用)

目录 1.关闭es分片迁移2.修改配置文件,开启x-pack验证3.重启elasticsearch服务4.生成CA授权证书,配置certs5.修改es配置文件,追加以下内容6.再次重启ES每个节点。7.执行设置用户名和密码的命令8.最后放开es分片迁移9.FQA9.1 Postman 访问不了ES9.2 curl 访问不了ES9.3 elast…

踩坑记录:uniapp中scroll-view的scroll-top不生效问题;

情景描述: 最近在uniapp项目中用到scroll-view内置组件,有需求是在页面下拉刷新后,让scroll-view组件区域的显示内容置顶,也就是scroll-view区域的内容恢复不滑动的状态; 补充:下拉刷新操作scroll-view组件…

案例046:基于微信小程序的云上考场

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

22.括号生成

​题目来源: leetcode题目,网址:22. 括号生成 - 力扣(LeetCode) 解题思路: 当只有一对括号时,结果为 "()",当有 n(n>1) 对括号时,其结果是在 n-1 对括号的…

DNS协议(DNS规范、DNS报文、DNS智能选路)

目录 DNS协议基本概念 DNS相关规范 DNS服务器的记录 DNS报文 DNS域名查询的两种方式 DNS工作过程 DNS智能选路 DNS协议基本概念 DNS的背景 我们知道主机通信需要依靠IP地址,但是每次通过输入对方的IP地址和对端通信不够方便,IP地址不好记忆 因此提…

java实现根据远程url下载文件到浏览器

本文提供 java实现根据远程url下载文件到浏览器片段代码,仅供参考。 可以实现,根据远程url地址下载推送至浏览器下载,这个方法可以解决因前端直接调用远程url下载出现的跨域问题。 /*** 根据远程url下载文件* param url 远程URL* param resp…

pytorch学习5-最大池化层的使用

系列文章目录 pytorch学习1-数据加载以及Tensorboard可视化工具pytorch学习2-Transforms主要方法使用pytorch学习3-torchvisin和Dataloader的使用pytorch学习4-简易卷积实现pytorch学习5-最大池化层的使用pytorch学习6-非线性变换(ReLU和sigmoid)pytorc…

如何零成本创建微信公众号版的自助查券返利机器人?

如何零成本创建微信公众号版的自助查券返利机器人? 在当今的电商时代,网购已经成为人们日常生活中不可或缺的一部分。然而,寻找商品优惠券和返利却是一件让人头疼的事情。为了解决这个问题,我们可以借助微信公众号和微赚淘客系统…

微信淘宝客自动查券找券返利机器人实现的原理和思路探索

微信淘宝客自动查券找券返利机器人实现的原理和思路探索 在当今的电商时代,网购已经成为人们日常生活中不可或缺的一部分。然而,寻找商品优惠券和返利却是一件让人头疼的事情。为了解决这个问题,我们可以借助微信公众号和微赚淘客系统来实现…

群体遗传 — 核苷酸多样性π

群体遗传 — 核苷酸多样性π **核苷酸多样性(nucleotide diversity),记为π,是分子遗传学中一个重要的概念,用于量化种群内部或不同种群间的遗传多样性。**这一概念由根井正利和李文雄在 1979 年提出。核苷酸多样性的…

2023-11-30 AIGC-让图片动起来的主流 AI 工具

摘要: 2023-11-30 AIGC-让图片动起来的主流 AI 工具 让图片动起来的主流 AI 工具 一、数字人播报 1、HeyGen 2、D-ID 3、SadTalker 二、图片生成视频 1、Runway Gen-2 2、Pika Labs 3、Genmo 三、伪3D动态效果 1、LeiaPix 2、剪映手机版 四、角色动画 Animated …