JDK的配置及运行过程

文章目录

  • 介绍JDK
  • 编译运行过程
  • 为什么要配置环境变量
    • 配置环境变量的作用
  • 配置JDK
  • 验证
  • ps:

介绍JDK

【面试题】JDK、JRE、JVM之间的关系?
JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。
JRE(Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境。
JVM(Java vitual machine):Java虚拟机,运行Java代码

JDK的配置及运行过程_第1张图片

编译运行过程

JDK的配置及运行过程_第2张图片

  • 先通过javac编译程序把源文件进行编译,编译后生成的.class文件是由字节
    码组成的平台无关、面向JVM的文件。最后启动java虚拟机来运行.class文件,此时JVM会将字节码转换成平台能够理解的形式来运行。
  • 注意:在运行Java程序前,必须先安装好JDK(Java Development Kit即Java开发工具包),JDK里面就包含了javac和java工具,Java程序最终是在JVM(Java虚拟机)中运行的。

为什么要配置环境变量

如果不使用集成开发环境,程序运行是通过命令提示符(cmd),并且要配置环境变量.
如果使用idea等集成开发环境,可以不配置环境变量

配置环境变量的作用

比如运行qq
JDK的配置及运行过程_第3张图片
找到exe文件,双击就能运行

也可以在cmd中让它跑起来 .

在exe文件所在目录下输入cmd回车,就会跳出cmd界面
JDK的配置及运行过程_第4张图片
JDK的配置及运行过程_第5张图片
这是通过命令行的形式,启动程序
但一定是在这个可执行程序的目录下
JDK的配置及运行过程_第6张图片

设置环境变量就是告诉cmd去找到这个qq.exe

过程如下:
在设置中搜索环境变量
JDK的配置及运行过程_第7张图片
JDK的配置及运行过程_第8张图片

一个操作系统可以有多个用户

  • 如果设置用户变量,只对那个用户起效
  • 如果设置系统变量,那不管是哪个用户都能起效

所以推荐设置系统变量(但我这好像没权限),就用用户变量做演示了

进入Path,我们加上qq的路径(可以上移,越上面越先被执行,效率高),确定
JDK的配置及运行过程_第9张图片
打开cmd,只输入qq,也能运行exe文件
JDK的配置及运行过程_第10张图片
这就是环境变量的意义
所以想用cmd执行java程序,得告诉cmd java程序在哪里

配置JDK

1.java 的安装路径(根据个人有所不同)
在path加上C:\Program Files\Java\jdk1.8.0_192\bin(含bin目录)

JDK的配置及运行过程_第11张图片
JDK的配置及运行过程_第12张图片

2.变量名:JAVA_HOME(不是在Path中加)
变量值:就是第一个的路径去掉bin目录
JDK的配置及运行过程_第13张图片
JDK的配置及运行过程_第14张图片

3.变量名:CLASSPATH(跟第二个一样,也要新建,但可有可无,不配置它也能运行java程序)
变量值:

 ,;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

验证

打开cmd输入java -version可以显示版本号
输入javac也可以验证
如果出现不是内部命令,那都是环境变量的问题

运行代码

public class helloworld{
	public static void main(String[] args){
		System.out.println("hello!");
	}
}

在自己知道的路径下新建xxx.java文件,用记事本打开(文件主名不要有空格)
写下代码
JDK的配置及运行过程_第15张图片

这是源代码,需要javac(编译器)进行编译.
就在源文件所在目录下输入cmd回车
JDK的配置及运行过程_第16张图片

cmd就到当前目录下
JDK的配置及运行过程_第17张图片
输入javac xxx.java回车
JDK的配置及运行过程_第18张图片
运行成功后多出.class文件,是二进制的字节码文件

运行的话是在cmd输入java xxx(文件不用加后缀)
JDK的配置及运行过程_第19张图片
屏幕上就打印出了 hello!

ps:

  • 只有一个类被public修饰,文件名和类名是一样的
  • 一个java文件中可以有多个类
  • 类里面是函数/方法
  • 一个类会产生一个字节码文件

你可能感兴趣的:(Java,java,面试)