我们一起来研究一下:“java HelloWorld”的执行过程以及原理。

D:\course\JavaProjects\02-JavaSE\chapter01>java HelloWorld
敲完回车,都发生了什么?????第一步:会先启动JVM(java虚拟机)第二步:JVM启动之后,JVM会去启动“类加载器classloader”类加载器的作用:加载类的。本质上类加载器负责去硬盘上找“类”对应的“字节码”文件。假设是“java HelloWorld”,那么类加载器会去硬盘上搜索:HelloWorld.class文件。假设是“java Test”,那么类加载器会去硬盘上搜索:Test.class文件。.......第三步:类加载器如果在硬盘上找不到对应的字节码文件,会报错,报什么错?错误: 找不到或无法加载主类类加载器如果在硬盘上找到了对应的字节码文件,类加载器会将该字节码文件装载到JVM当中,JVM启动“解释器”将字节码解释为“101010000...”这种二进制码,操作系统执行二进制码和硬件交互。问题?????默认情况下,类加载器去硬盘上找“字节码”文件的时候,默认从哪找????默认情况下类加载器(classloader)会从当前路径下找。此处应该有疑问,你可以提出哪些问题????能不能给类加载器指定一个路径,让类加载器去指定的路径下加载字节码文件。答案:可以的。但是我们需要设置一个环境变量,叫做:classpathclasspath是一个环境变量,是给谁指路的?答案:是给“类加载器”指路的。classpath环境变量不属于windows操作系统,classpath环境变量隶属于java。classpath环境变量是java特有的。classpath=A路径;B路径;C路径.....classpath是一个变量名A路径;B路径;C路径.....是变量值我们把classpath配置一下,这个环境变量在windows中没有,需要新建!!!!计算机-->右键-->属性-->高级系统设置-->环境变量-->新建...注意:变量名不能随意写:大小写无所谓,但必须叫做:classpathCLASSPATHClassPathClasspathclasspath都行。我目前是随意配置的:(重启CMD)classpath=D:\course非常重要的一个特点,必须记住:配置了classpath=D:\course之后,类加载器只会去D:\course目录下找“xxx.class”文件不再从当前路径下找了。结论是:到目前为止:classpath环境变量不需要配置。但你必须理解classpath环境变量是干什么的!!!!你一定要理解classpath环境变量的作用是什么?是给类加载器指路的。在没有配置环境变量classpath的时候,默认从当前路径下加载。如果配置了环境变量classpath的话,就只能从指定的路径下加载了。path java_home classpath,这3个环境变量path需要配置,后面两个暂时不配置。

classpath理解相关推荐

  1. path、classpath理解

    path.classpath最常见的场景:环境变量配置 path环境变量:设置path的作用是让操作系统可以找到JDK命令(指定了JDK命令搜索路径):path环境变量原来Windows里面就有,只需 ...

  2. linux tomcat设置classpath,理解Tomcat的Classpath-常见问题以及如何解决

    在很多Apache Tomcat用户论坛,一个问题经常被提出,那就是如何配置Tomcat的classpath,使得一个web应用程序能够找到类或者jar文件,从而可以正常工作.就像许多困扰Tomcat ...

  3. java读取classpath配置文件_SpringBoot2.x入门教程:理解配置文件

    前提 这篇文章是<SpringBoot2.x入门>专辑的「第4篇」文章,使用的SpringBoot版本为2.3.1.RELEASE,JDK版本为1.8. 主要介绍SpringBoot配置文 ...

  4. java+classpath的理解_Java配置path和classpath的含义详解-Go语言中文社区

    ​ 新入门java的同学经常会问我path和classpath是什么意思,尤其会问classpath是什么意思,为什么只配置一个.就可以.下面以windows系统为例,做一个系统讲解.包含超详细实验数 ...

  5. 关于 java.library.path、classpath、path 以及 java 程序一些依赖相关的理解

    介绍 java.library.path:Java 的属性.启动时通过 -Djava.library.path 指定:用来指定非 java 类包的位置.如:dll,so. classpath:Java ...

  6. 01-01java概述 doc命令、jdk\jre下载安装、path、classpath配置、开发中常见小问题

    1:计算机概述(了解) (1)计算机(2)计算机硬件(3)计算机软件系统软件:window,linux,mac应用软件:qq,yy,飞秋(4)软件开发(理解)软件:是由数据和指令组成的.(计算器)开发 ...

  7. 深入理解Java中为什么内部类可以访问外部类的成员

    内部类简介 虽然Java是一门相对比较简单的编程语言,但是对于初学者, 还是有很多东西感觉云里雾里, 理解的不是很清晰.内部类就是一个经常让初学者感到迷惑的特性. 即使现在我自认为Java学的不错了, ...

  8. 深入理解Spring的ImportSelector接口

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:聂晨 cnblogs.com/niechen/p/92624 ...

  9. [译]深入理解JVM

    深入理解JVM 原文链接:http://www.cubrid.org/blog/dev-platform/understanding-jvm-internals 每个使用Java的开发者都知道Java ...

最新文章

  1. codevs1163访问艺术馆(树形dp)
  2. PyTorch 实现经典模型6:RCNN (Fast RCNN, Faster RCNN)
  3. ffmpeg基本用法
  4. 关于缓存雪崩\穿透\击穿等一些问题
  5. Oracle高可用概述(HA与RAC的关系解惑)
  6. Arcgis用字段计算器计算只出一部分值另外一部分为null
  7. 【Python】表格文件处理
  8. [BZOJ1101][POI2007]Zap
  9. css常见样式命名思想
  10. 前端项目如何做测试?
  11. CAM350测量pcb尺寸的操作方法
  12. Oracle开窗函数
  13. 数据分析案例-航空公司客户价值分析(聚类)
  14. 【前端三剑客一】 HTML
  15. PS for Mac 破解版下载
  16. 苏宁家电召开O2O购物节动员会 平台六方位支持迎战双十一
  17. javascript 编码_我们的1,600小时JavaScript编码课程
  18. python list是不可变的数据类型吗_python中不可变数据类型和可变数据类型
  19. Html5添加SVG生成图案花纹背景样式的js插件教程
  20. 电脑端登录多个微信 PC端登录多个微信 win10多微信登录 win7登录多个微信

热门文章

  1. Ztree手风琴效果(第三版)
  2. 【原】Redis事务管理
  3. [Ubuntu] apt 添加第三方库
  4. 如何下载Lucene.net源码
  5. 为什么Spark能成为最火的大数据计算引擎?它是怎样工作的?
  6. 乘风破浪的迁移学习!四字成语讲明白这个大热研究方向
  7. 以朋友圈为例,腾讯资深架构师揭秘鹅厂大数据平台是怎样运营的
  8. 平均月薪超过1万的北京人是这样上班的|大数据解读(视频)
  9. LwIP移植准备工作
  10. 同样是卖票,为啥阿里卖电影票就不卡?技术上做了啥???