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

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

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

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

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

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

总结:

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

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

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

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

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

java Classpath 的解读的更多相关文章

  1. java classpath getResource getResourceAsStream

    1.classpath 用于指定java运行时,jvm寻找class文件以及jar文件的存储目录.jvm依据classpath中出现的jar文件以及目录,依次寻找,直到找到指定class文件. 例:j ...

  2. java classpath批量设置shell脚本

    java classpath批量设置shell脚本   注意:linux bash jar文件之间的分隔符是':'    export JAR_HOME=path to directory which ...

  3. Java I/O解读与使用实例

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲解了Java I/O解读与使用实例. 一.I/O基本概念 I/O全称是Inpu ...

  4. java classpath深入详解(转)

    http://developer.51cto.com/art/200509/2786.htm 设置类路径 结构 可通过对 JDK 工具使用 -classpath 选项(首选方法)或设置 CLASSPA ...

  5. JAVA classpath, 纠正我一直以来错误的认知

    如何调在CLI中使用java tool(JDK中的java命令)调用一个打包在jar中的类,我想大多数人都能给出笼统的方案: java -classpath xxxxx com.test.classA ...

  6. java classpath import package 机制 @Java的ClassPath, Package和Jar

    java classpath import package 机制   從一個簡單的例子談談package與import機制 基本原則:為什麼需要將Java文件和類文件切實安置到其所歸屬之Package ...

  7. 转载:Java Lock机制解读

    Java Lock机制解读 欢迎转载: https://blog.csdn.net/chengyuqiang/article/details/79181229 1.synchronized synch ...

  8. JAVA classpath jar问题[zz]

    classpath问题可以说是所有初学者头疼的问题,偶也一样. 1) classpath的作用:  它的作用就事让java找到你所要执行,或你拥有的类. 2) classpath的设置:  设置cla ...

  9. java -classpath or -cp 的设置和解释

    classpath is a parameter—set either on the command-line, or through an environment variable—that tel ...

随机推荐

  1. C#利用 string.Join 泛型集合快速转换拼接字符串

    C#利用 string.Join 泛型集合快速转换拼接字符串 List<int> superior_list = new List<int>(); superior_list. ...

  2. 简单bfs(hdu2612)

    #include<stdio.h>#include<string.h>#include<queue>#define INF 0x3f3f3f3fusing name ...

  3. Win Form不能响应键盘事件

    在窗体属性中,将KeyPreview设置为true

  4. haproxy的丰富特性简介

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  5. Emacs配置(考场必备)(Emacs)

    最近有几次离开自己一直坐着的座位,去别的机房考试了. 于是猛然想起来要记一记Emacs的简洁配置了. 算是把NOIP残存的记忆再拾一点起来...... 附上一些解释 (global-set-key [ ...

  6. 号称了解mesos双层调度的你,先来回答下面这五个问题!

    一提mesos,很多人知道双层调度,但是大多数理解都在表面,不然试一下下面五个问题. 问题一:如果有两个framework,一万个节点,按说应该平均分配给两个framework,怎么个分法?一人一台这 ...

  7. 重磅消息-Service Fabric 正式开源

    微软的Azure Service Fabric的官方博客在2017.3.24日发布了一篇博客 Service Fabric .NET SDK goes open source ,介绍了社区呼声最高的S ...

  8. 使用Ant打包Java后台程序

    概述 本文通过一个简单的Java Application例子描述如何用ANT完成基本的程序打包工作.包含文件拷贝.编译.打包三部分:完成这三部就可以得到一个可运行的程序包了. ANT的安装,环境变量的 ...

  9. 关于java构造函数,静态代码块,构造代码块,和普通代码块相关总结(一)

    构造函数.构造代码块和静态代码块容易混淆,它们的执行条件和执行顺序也常常容易犯迷.这里就针对这些问题说一下我个人的一些理解,顺便对这部分内容做个小结. 一.构造函数 格式:类名(参数1,参数2,-){ ...

  10. Hadoop的Archive归档命令使用指南

    hadoop不适合小文件的存储,小文件本省就占用了很多的metadata,就会造成namenode越来越大.Hadoop Archives的出现视为了缓解大量小文件消耗namenode内存的问题. 采 ...