JAVA中关于JDK/JRE/JVM的含义

JAVA中关于JDK/JRE/JVM的含义

程序员的碎碎念–
或许我还算不上是一个合格的程序员,今天练习打字,打字速率只有100/min

学了那么久的java需要知道Java是怎么去运行的—不然怎么能了解java呢?

我们从开始接触JAVA,一般是从Helloworld.java开始的,刚开始只是让我们去照着模仿,并没有关心它是怎么运行的,今天我整理一下他是怎么运行的–如有不当之处还请大佬指出,万分感谢;

JDK–也就是我们常说的java开发环境–开发人员使用
JRE–也就是java运行环境–普通用户使用,开发人员也需要用
JVM–也就是我们常说的java虚拟机
三者关系如下
在这里插入图片描述

我们可以发现jre和jdk都包含了jvm和核心类库,我们来看一下jre和jdk安装目录
先看jdk安装目录–
在这里插入图片描述

此上图中的jre目录下包含如下文件—
在这里插入图片描述
我们来看jre安装目录

在这里插入图片描述

可以发现两个文件夹下内容是一样的;
接下来我们回顾一下 helloworld.java是怎样运行的

经过javac编译生成字节码文件–helloworld.class 然后交给java去解析在jvm上运行;
以下是一段代码,javac April.java编译之后生成April.class文件, 然后java April 执行

在这里插入图片描述
那么他是怎么执行的呢?
我们来先修改一下安装目录中的tools.jar文件名为tools1.jar,我们在尝试编译和运行一下,
会提示找不到或无法加载主类(jdk1.8之后找不到tools.jar,和dt.jar),我们在配置java环境是也可以看出来,classpath在jdk1.9之后可以不配置也可以运行,但是jdk1.8不行
:dt.jar和tools.jar是两个java最基本的包,里面包含了从java最重要的lang包到各种高级功能

在这里插入图片描述

我们写的类是先从主方法main处开始运行的,path下面的bin里面都是java的可执行的编译器及其工具,如java,javadoc等,报错的原因就是输入的javac的命令不是去JDK中bin目录去找的javac.exe,而是去JDK中lib目录中的tools.jar中com.sun.tools.javac.Main中执行,tools.jar运行时先找tools.jar中com.sun.tools.javac.Main中执行

在这里插入图片描述
因为JDK负责开发java,JDK内部也是由java语言开发的,也要运用到jre去执行Java代码,所以jdk本身也需要一套jre
在这里插入图片描述
可以将bin理解为jvm,lib理解为类库,单独一个jvm或者类库是没法运行的,所以class文件在jvm中也是不能运行的,因为还需要类库的支持,jvm会调用类库—》通过jvm.dll来动态链接到类库
在这里插入图片描述总结—
在这里插入图片描述

以上内容是根据jdk1.8来写的

JAVA预编译

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeMartain

祝:生活蒸蒸日上!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值