Java解释器的运行过程介绍
作者:yangyongUestc 发布时间:2022-10-03 01:21:30
首先介绍一下Java解释器的概念,Java解释器:解释器是Java虚拟机非常重要的一部分,它的工作就是把字节码转化为机器码并在特定的平台进行运行。简单一点,java的解释器只是一个基于虚拟机JVM平台的程序 ,即jdk或jre目录下bin目录中的java.exe文件。 Java解释器相当于运行Java字节码的“CPU”,但该“CPU”不是通过硬件实现的,而是用软件实现的。
步骤1:可以通过操作系统设置,也可不用设置,一般编译环境会为你设置,其中CLASSPATH包含一个或多个目录,用来查找.class文件的根目录。
步骤2:需要从根目录进行查询,解释器获取包的名称,将点号替换为反斜杠,具体哪种反斜杠视操作系统而定。
步骤3:将得到的路径与CLASSPATH中的各个不同的项相连接,解释器就在这些目录中查找与你创建的类名称相关的.class文件。
举例:假设根据java环境设置,CLASSPATH变量为下面几种:
C:\Program Files\Java\jre1.8.0_102\lib;
C:\Program Files\Java\jre1.8.0_102\lib\tools.jar;
E:\JAVA学习\JavaProject\JavaStudy\bin
然后从这些目录中查找.class
文件,比如说要找MyClass.class
,此时,先获取包名net.mindview.util
,将该包名替换成net\mindview\util
,再将替换后的包名与CLASSPATH
中的路径连接,形成一些查找路径,如下:
路径1:C:\Program Files\Java\jre1.8.0_102\lib\net\mindview\util
路径2:C:\Program Files\Java\jre1.8.0_102\lib\tools.jar\net\mindview\util
路径3:E:\JAVA学习\JavaProject\JavaStudy\bin\net\mindview\util
前两条路径不存在,第三条路径存在,成功找到MyClass.class
,至此,解释器查找成功。
来源:https://blog.csdn.net/yangyong0717/article/details/78374236


猜你喜欢
- 在用java的io流读写文件时,总是被它的各种流能得很混乱,有40多个类,理清啦,过一段时间又混乱啦,决定整理一下!以防再忘Java输入/输
- 本文实例为大家分享了Java分形绘制山脉模型的具体代码,供大家参考,具体内容如下如何绘制一个山脉构思设计任意选取三个点,选取一个范围和一个比
- 一、介绍knife4j增强版本的Swagger 前端UI,取名knife4j是希望她能像一把匕首一样小巧,轻量,并且功能强悍,更名也是希望把
- 本文实例讲述了C#实现程序开机启动的方法。分享给大家供大家参考,具体如下://此方法把启动项加载到注册表中//获得应用程序路径string
- 1. 树概念及结构1.1树概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看
- AndroidStudio kotlin配置安装插件File -> Settings -> Plugins -> Brow
- SpringBoot底层的一个功能 : @ConfigurationProperties@ConfigurationProperties 配
- 本文实例为大家分享了java * 实现在线人数统计的具体代码,供大家参考,具体内容如下1.在工程中创建监听类SessionListener
- 先看看效果图:实现思路:监听ListView的滑动,等目的项为列表第一个可见的ItemView时,添加一个一个的布局,产生悬停效果实现代码:
- 本文实例讲述了C#实现跨线程操作控件方法,分享给大家供大家参考。具体实现方法如下:由于在.net平台下Winform、wpf禁止跨线程直接访
- java Iterator接口和LIstIterator接口分析目录1.Iterator接口2.ListIterator3.It
- 有时候会碰到一些需要设置开始日期和结束日期的需求,比如有很多商品,每件商品都有开始出售日期和结束出售日期的字段。如何使用DatePicker
- 项目中用到WebView加上进度条放在顶部,让用户知道加载进度情况,可以提高用户体验:效果:布局:<RelativeLayoutand
- 要求: * 判断用户输入的年份是平年还是闰年实现代码:import java.util.Scanner;/** * 要
- 前言Android studio依赖项目是使用gradle管理的,依赖一个项目、一个jar包、一个工程,都可以在这里进行配置,本文将给大家详
- 使用SlidingTabLayout需要准备2个类,分别是 SlidingTabLayout,与SlidingTabStrip,,放进项目中
- 错误详情:java.lang.NoSuchMethodException: [Lorg.springframework.web.multip
- 本文实例讲述了C#创建、读取和修改Excel的方法。分享给大家供大家参考。具体如下:windows下我们可以通过 Jet OLE DB访问E
- TimeSpan结构:表示一个时间间隔。它含有以下四个构造函数:TimeSpan(Int64)将 TimeSpan结构的新实例初始
- 实例如下://首先要添加 System.ServiceProcess.dll 引用 ServiceController sc