一、JDK和JRE的关系与区别
1. JDK:(Java Development Kit) Java的开发工具包,包含Java编译工具 (javac.exe) 、Java运行工具 (java.exe) 、Java打包工具 (jar.exe)、Java文档生成工具 (javadoc.exe) 等。
如:jstack.exe - 查看JVM的堆栈内存情况
2. JRE:(Java Runtime Environment) Java的运行时环境,包含Java的基础类库 (Java API)、JVM、Java运行工具 (java.exe)
3. 关系与区别:
1)JDK中包含了JRE,JRE中包含了JVM
2)JDK中包含Java编译工具和运行工具
JRE中只有Java运行工具,没有编译工具
3)JDK是面向开发人员使用的SDK (Software Development Kit 软件开发工具包),提供了Java的开发环境和运行环境
JRE是面向普通用户使用的,只提供了Java的运行环境,只要求让程序跑起来即可,用户无需手动配置系统环境变量
二、javac和java命令的区别
1. javac命令:执行javac.exe程序,负责编译,将程序员写的.java文件编译成JVM能读懂的.class字节码文件
javac 类名.java
2. java命令:执行java.exe程序,负责运行,会启动一个JVM进程,将运行时所需的类库和编译后的.class文件加载到内存中,将字节码翻译为机器码(01指令)后执行.class文件
java 类名 参数1 参数2 …