一 、jdk内容概述

当安装好jdk后(本示例jdk版本为11.0.1,不同版本,目录有细微差别,但bin目录包含的exe是一样的),打开bin目录,有两个重要的exe文件:javac.exe(编译器)和java.exe(.class文件执行器),详细见下图:

浅析Java程序的执行过程_Java

二 、原理分析

java程序执行过程分为两步,下图为流程示意图。

第一步:将java源码(.java文件)通过编译器(javac.exe)编译成JVM文件(.class文件)

第二步:将JVM文件通过java.exe执行,输出结果

浅析Java程序的执行过程_Java_02

通过如上分析,我们发现JVM至关重要,其向上屏蔽了操作系统的差异,也正因为JVM的该作用,才使java这门编程语言能够实现跨平台,其原理大致可描述为如下:

浅析Java程序的执行过程_Java_03

三、例子解析

通过两种方式来检测java程序执行过程,手写方式和编译器方式。

(一) 手写java源程序

  1. 用notepad++手写一个java程序,并保存为JavaRunProcess.java。

Tip:文件名尽量与类名一致

//测试java运行过程public class JavaRunProcess {
    public static void main(String[] args){
        System.out.println("Test java Runing Process");
    }}

浅析Java程序的执行过程_Java_04

2. 用javac.exe将刚保存的JavaRunProcess.java文件编译成JavaRunProcess.class文件

浅析Java程序的执行过程_Java_05

3. java.exe执行JavaRunProcess.class文件,输出结果

浅析Java程序的执行过程_Java_06

(二)通过Intellij IDEA编写java源程序

如下图,当我们编译好JavaRunProcess源程序后,点击编译,就会产生JavaRunProcess.class文件

浅析Java程序的执行过程_Java_07

四、一些小建议

1. 在配置jdk环境变量时,一般需要配置三个参数:JAVA_HOME,PATH和CLASSPATH,在jdk 1.5后,可以不用配置CLASSPATH变量;

2. 在配置jdk变量JAVA_HOME和PATH变量时,它们之间应配置为这样关系:JAVA_HOME变量存储jdk安装路径,PATH变量引用JAVA_HOME变量
JAVA_HOME:C:\Program Files\Java\jdk-11.0.1
PATH:%JAVA_HOME%\bin
Tip:这样配置好处是,当在同一台电脑配置多个jdk时,方便jdk的切换(当切换jdk时,只需改变JAVA_HOME变量接口)

3. 注意jdk版本问题

浅析Java程序的执行过程_Java_08

转自:浅析java程序的执行过程 - Alan_beijing - 博客园