一 、jdk内容概述

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

二 、原理分析

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

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

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

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

三、例子解析

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

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

Tip:文件名尽量与类名一致//测试java运行过程public class JavaRunProcess {

public static void main(String[] args){

System.out.println("Test java Runing Process");

}}

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

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

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

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

四、一些小建议

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程序运行5步骤_浅析Java程序的执行过程相关推荐

  1. java项目运行在浏览器_在 Java 程序中,能在 WWW 浏览器上运行的是 程序。_学小易找答案...

    [简答题]已知:如图, AD 是△ ABC 的角平分线, DE//AC, 交 AB 于点 E , DF//AB ,交 AC 于点 F ,求证: AD ⊥ EF. [简答题]Java语言具有较好的安全性 ...

  2. java多线程同步与死锁_浅析Java多线程中的同步和死锁

    Value Engineering 1基于Java的多线程 多线程是实现并发机制的一种有效手段,它允许编程语言在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间相互独立,且与进程一样拥有独立 ...

  3. java 对象的定义是_浅析Java编程中类和对象的定义

    1,什么是类? 答:类是客观存在的,抽象的,概念的东西. 2,什么事对象? 答:对象是具体的,实际的,代表一个事物.例如:车是一个类,汽车,自行车就是他的对象. 关于类与对象的描述:类是对象的模版,对 ...

  4. 取 java 程序运行的路径_获取Java程序运行的路径 | 获取当前jar包的路径

    经过试验,不管是否是Jar包,不管是否是Tomcat部署,以下三个方法均可实现. package test; public class MyPath { public static String ge ...

  5. 一个java小程序运行结果图_编写以下程序,并上传源代码和运行结果截图,附件中上传java源程序。...

    [填空题]向慈善组织捐款 [简答题]你的组员.岗位.团队名.口号是什么? [单选题]被称为"生命中枢"的脑组织是( ). [单选题]已知偶函数 的图象经过 ,则函数的图象必经过另一 ...

  6. java -jar 运行jar包_用java –jar 命令运行Jar包

    用java –jar 命令运行Jar包 摘要 这个技巧阐明了如何不直接处理清单文件而将一个不能运行jar包转换成一个可以执行的jar包.学会如何写一段转换jar包的程序,将你的jar包转换成你能使用j ...

  7. java集合set的使用_浅析Java中的set集合类型及其接口的用法

    概念首先,我们看看Set集合. (01) Set 是继承于Collection的接口.它是一个不允许有重复元素的集合. (02) AbstractSet 是一个抽象类,它继承于AbstractColl ...

  8. java线程 创建与启动_浅析Java中线程的创建和启动

    前言 线程是一个程序内部的顺序控制流.cpu实际上在一个时间点上,只执行一个.只不过我们把cup分成了多个时间片,由于速度很快,我们看起来像是多个线程.就像你的时间分成几片,这样整体看来做事情有规律, ...

  9. java源程序分为两大类_根据程序运行的环境不同,JAVA源程序分为两大类,那两个类?-----并解析什么意思...

    根据程序运行的环境不同,JAVA源程序分为两大类,那两个类?-----并解析什么意思以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来 ...

最新文章

  1. 每天进步一点点——Linux
  2. vivado烧录flash过程
  3. 08 域控 架构主机 转移_域控制器的角色转移与抢占
  4. PHP-代码审计-变量覆盖
  5. php 数据类型转换与比较
  6. python制作图_Python做图的方法
  7. matlab 纯数据表格,MATLAB uitable表格数据更新处理
  8. 五一高铁票难抢?用RPA机器人试试!
  9. 直降500+24期免息!天猫双11全线iPhone打折
  10. python 惰性序列_菜鸟学飞自学Python(五)高阶函数
  11. storm笔记:Storm+Kafka简单应用
  12. 冒泡法排序c语言代码大全,C语言实现选择排序、冒泡排序和快速排序的代码示例...
  13. 第十届“认证杯”数学中国数学建模国际赛(2021年小美赛)
  14. esp8266开发入门教程(基于Arduino)——点亮LED灯
  15. 用 python 写了一个随机任务抽取器
  16. java毕业答辩ppt_java网上商城系统毕业设计答辩.ppt
  17. CSDN博文精选:最受欢迎的系列专栏博客推荐
  18. office2010 打开报错 无法访问您试图使用的功能所在的网络位置
  19. 电脑鼠标箭头一直转圈的解决办法
  20. 阿里云服务器断开连接后程序在后台运行办法

热门文章

  1. DB存储过程关于数据处理的写法
  2. C#界面之TextBox多种用法合集
  3. 假设系统时钟频率采用6MHz c语言,定时器例题.ppt
  4. 销售为什么爱“撒谎”
  5. 如何判断当前打开的WORD或WPS文件已经关闭?
  6. 手把手教你搭建美团饿了么电影票外卖cps小程序 附源码
  7. Eclipse下载安装教程(详细)
  8. 舍友偷吃了我的草莓蛋糕,呜呜,学会“网落编成”卷哭她。
  9. flask send_file使用
  10. 后疫情时代,小投资大回报的轻资产项目,Ai智能金刚指欢迎您的考察加盟