1.我们先写一个Hello.java文件(通过txt文件改扩展名,在通过打开方式为记事本编写代码)
2.运行一下Hello.java文件(shift+鼠标右键 打开Powershell窗口)
此处出现了Hello.class 文件(这个是编译后的二进制文件)
运行一下
Hello.class文件是在JVM里运行的。
JDK,JRE,JVM三者的关系是JDK包含JRE,JRE包含JVM.
1.bin 里边放的是javac.exe,java.exe 等可执行程序
2.include 里边放的是JDK和JVM交互用的头文件
3.jre:说明JDK包含jre jre是java运行环境
4.放的一些类库
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.