说一说.java文件是如何运行的?说一说JDK,JRE,JVM?

1.我们先写一个Hello.java文件(通过txt文件改扩展名,在通过打开方式为记事本编写代码)

说一说.java文件是如何运行的?说一说JDK,JRE,JVM?_第1张图片

 说一说.java文件是如何运行的?说一说JDK,JRE,JVM?_第2张图片

 2.运行一下Hello.java文件(shift+鼠标右键 打开Powershell窗口)

说一说.java文件是如何运行的?说一说JDK,JRE,JVM?_第3张图片 

 此处出现了Hello.class 文件(这个是编译后的二进制文件)

运行一下

说一说.java文件是如何运行的?说一说JDK,JRE,JVM?_第4张图片

 Hello.class文件是在JVM里运行的。

JDK,JRE,JVM三者的关系是JDK包含JRE,JRE包含JVM.

说一说.java文件是如何运行的?说一说JDK,JRE,JVM?_第5张图片

 说一说.java文件是如何运行的?说一说JDK,JRE,JVM?_第6张图片

1.bin 里边放的是javac.exe,java.exe 等可执行程序

2.include 里边放的是JDK和JVM交互用的头文件

3.jre:说明JDK包含jre jre是java运行环境

4.放的一些类库

说一说.java文件是如何运行的?说一说JDK,JRE,JVM?_第7张图片

 1.bin里边暂且认为放的是JVM

2.lib 是JVM工作所需要的类库

lib + JVM = JRE

总结一下。我们写好代码后,通过JDK的javac命令将我们的文本java文件编译成.class文件(Java字节码文件),在JRE上运行这些Java字节码,JVM解析这些字节码。所以说,一次编译到处运行,你可以把.class文件传给你的好友,他的电脑装好jdk后,直接java Hello 也能够运行出结果。

那你能说说JDK和JRE的关系吗?

JDK里边包含了java,javac等可执行程序,它是一个开发环境,开发者需要开发环境,你开发者编译运行成.class文件,传输给用户,而用户只需要运行.class文件即可,并不需要关注开发环境,而JRE是运行时环境。

那你能说说JRE和JVM的关系吗?

通过上面的图,我们可以大致了解,只有JVM并不能直接运行.class文件,需要JRE提供的类库,尤其是rt.jar.

你可能感兴趣的:(每日一问,java,jvm,开发语言)