java Classpath 的解读

在了解java的classpath之前先来看看java的运行机制

         1.首先是编译,将.java文件编译成虚拟机认识的二进制文件。这个过程需要的命令是javac  可以在jdk的bin目录中找到,javac.exe(windows 下文件以.exe结尾)

         2.运行。将虚拟机认识的class二进制文件解析成机器码运行。这个过程需要的命令是java  在classpath的目录中找编译成的class文件加载到虚拟机运行。

首先将编译成虚拟机认识的二进制文件放到某一目录文件夹下(即生成的class文件)

运行时查找classpath 文件的路径,一般的文件路径都是:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar;

. 代表在当前的现在当前的目录下寻找class文件。可以设置成自己的工作空间的目录。

总结: 

   classpath 只在运行时有查找class文件的作用,防止系统找不到class文件。

付:(有人说为什么不查找整个磁盘,我想这个大概有两个原应:1.安全问题2.效率问题3.多个文件都出现不知道加载不知道运行那个的问题)

    1.因为如果虚拟机能查找整个磁盘的话,那么某些人可以将一些恶意的代码加载入虚拟机,造成虚拟机的瘫痪。

    2.试想现在的普通磁盘都到T的级别,服务器就更不用说。所以在整个磁盘下查找class文件效率会十分低下。

    3.在不同的操作系统中统一文件夹下不能存在同名的文件,但是不同目录下却可以。所以在不同目录下如果存在同名class文件,虚拟机就不知道要加载哪个文件。

原文地址:https://www.cnblogs.com/immer/p/5175643.html