0
点赞
收藏
分享

微信扫一扫

java的编译执行与环境变量的配置

RIOChing 2022-01-10 阅读 53
java

1.10日Java学习总结

本篇文章主要是有关Java的编译,运行过程,jdk,jre,jvm的区别与联系,然后是Java的环境变量的配置。


文章目录


前言

不知不觉中已经学完Java好长时间,但目前我的水平还停留在只会一些基础的语法,细思也不懂,深究也不懂,因此这个假期我打算提升这一方面的能力,将这一平台作为一个记笔记的地方。


一、Java的编译与执行

1.Java的工作原理

在这里插入图片描述如图所示,首先我们在电脑的硬盘里面创建一个test.java的文档,我们将这个文件叫做java的源代码,源代码就是我们严格按照Java的语法特点所写。
源代码建立好之后就是能让计算机执行,而计算机所能识别的语言只能是二进制的机器语言,因此需要将源代码变为二进制。java语言中执行这一操作的是JVM(下面介绍)。Java语言的特点是可移植性就是利用JVM,可移植性就意味着你可以在不同的平台执行同一程序而无需修改,当然前提是在你的不同的系统上有着不同系统所对映的JVM,然后JVM通过类加载器执行操作,而类加载器只能找.class的文件,.class的文件经过javac这个命令可以得到。


在这里插入图片描述
javac命令是用来编译java的源代码文件,将其编译为.class的字节码文件
java命令是运行命令,由JVM对字节码文件进行解释和执行


2.JDK,JRE,JVM的有关内容

  1. JDK(Java Development Kit) 是Java开发工具包,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。
  2. JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JRE并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)光有JVM还不能成class的 执行,因为在解释class的时候JVM需要调用解释所需要的类库,jre里有运行.class的java.exe)。
  3. JVM(Java Virtual Machine),即java虚拟机, 里面主要包含了jvm和java运行时基本类库(rt.jar)。它就是java源码编译成的jar包。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。
    在这里插入图片描述

总的来说:JVM不能单独搞定class的执行,解释class的时候需要调用解释所需要的类库lib。在JDK下的jre目录里面有两个文件夹bin和lib,lib则是jvm工作所需要的类库,而jvm和lib合起来就称为jre
JRE = jvm + lib
我们利用JDK开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用


二、环境变量的配置

1.为什么要进行环境变量的配置

javac在编译的时候只能在当前目录下进行编译,如果你不进行环境变量的配置,那么你下一次在进行编译的时候又需要重复当前的操作,即进入bin才能编译,要不然就是下图的情况
在这里插入图片描述计算机在当前的目录中找不到文件时,就会进入到path中寻找,因此你必须给path中加入javac所在的地址才能到处直接运行。

2.怎么进行环境变量的配置

这里有大佬的一篇文章
https://blog.csdn.net/qq_43250118/article/details/113324562?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164177828516781685354053%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164177828516781685354053&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-113324562.first_rank_v2_pc_rank_v29&utm_term=jdk%E5%AE%89%E8%A3%85&spm=1018.2226.3001.4187

举报

相关推荐

0 条评论