path、classpath、java_home等环境变量的作用

path

在windows中有一个环境变量,名字为path

在DOS命令窗口下的命令 如ipconfig 实际上都是一些exe文件,之所以输入ipconfig就可以运行,是因为path中包含了ipconfig.exe的路径,输入ipconfig+回车即可在对应路径下查找到ipconfig.exe并运行它。

所以要想直接在DOS命令窗口下使用javac来直接编译源代码,则必须在path中写入javac.exe的路径

 

classpath

首先看一下Java HelloWorld 命令的运行过程

第一步:会先启动JVM

第二步:JVM启动之后,JVM会去启动类加载器classloader。类加载器的作用是加载类,本质上是去硬盘上找相应的字节码文件,

第三步:如果对应的字节码不存在则报错,存在的话,类加载器则会将字节码文件加载到JVM里,由解释器将字节码解释为二进制信息,由操作系统实行与硬件的交互。 

总体来说就是JVM ------》类加载器 -------》解释器-------》操作系统

类加载器默认是在当前目录下找字节码文件

那么能不能给类加载器指定一个路径,让类加载器去制顶的路径下查找字节码文件呢?

答案是可以!但是我们需要设置一个环境变量,叫做:classpath!

classpath环境变量是java特有的。classpath=A路径;B路径;C路径.......

classpath是一个变量名,

A路径;B路径;C路径;.....是变量值

这里注意一点:配置了classpath之后,类加载器只会去配置的目录下找字节码文件。

 

拓展:

JDK自带了三个类加载器

启动类加载器

去C:\Program Files\Java\jdk1.8.0_131\jre\lib\rt.jar下加载类

rt.jar中都是JDK最核心的类库

扩展类加载器

去C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\*.jar下加载全部jar文件

应用类加载器

去classpath寻找类加载

java中为了保证类加载的安全,使用了双亲委派机制:优先从启动类加载器中加载,这个称为“父”,再从拓展类中加载,这个称为”母“。双亲委派,如果都加载不到才会考虑从应用类加载器中加载。直到加载到为止

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值