Java虚拟机(JVM)借助类装载器装入应用程序使用的类,具体装入哪些类根据当时的需要决定。CLASSPATH环境变量告诉类装载器到哪里去寻找第三方提供的类和用户定义的类。另外,你也可以使用JVM命令行参数-classpath分别为应用程序指定类路径,在-classpath中指定的类路径覆盖CLASSPATH环境变量中指定的值。必须特别注意的是(也是令人吃惊的是),类装载器装入类的次序就是类在classpath中出现的次序。类装载器从classpath的第一项开始,依次检查每一个设定的目录和压缩文件,尝试找出待装入的类文件。当类装载器第一次找到具有指定名字的类时,它就把该类装入,classpath中所有余下的项目都被忽略。
在windows中以分号隔离多个路径在linux或unix中用冒号来隔离。
classpath在编译和运行时都要用到的参数。当没有这个参数时,java 和 javac 命令会取环境变量 CLASSPATH 来代替。如:
javac -classpath . Class1.java
那么 javac 便会以当前目录(.)作为 classpath。你也可以先将环境变量 CLASSPATH 的值设为“.”,然后执行
javac Class1.java
效果是一样的。注意,如果你指定了参数,那么环境变量就会被忽略。所以二者只会取其一。当 classpath 很长的时候,我们可以将它们组织一下。为了运行方便,java 程序通常都会提供一个批处理文件(如 run.bat)。文件的内容类似于下面的:
set path=%CLASSPATH%;commons-lang-2.1.jar;
set path=%path%;program.jar
java -classpath %path% MainClass
那么就算 classpath 再长,也可以像第二行那样化整为零,添加删除都很方便。这比用环境变量方便的多,所以建议不要依赖于 CLASSPATH 环境变量。编译或运行时将这个变量赋给 classpath 参数即可。
总之classpath就是指定你运用到的类去哪儿找!
分享到:
相关推荐
主要介绍了Spring配置中的"classpath:"与"classpath*:"的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
Classpath Variable 解决办法
关于java的classpath补充,详细说明如何配置classpath,如火热让javac正确编译运行java文件
Java环境配置与设置JAVA_HOME_CLASSPATH_PATH的目的
自学如何使用框架的工具,项目框架添加classpath文件的
一、ClassPath Helper 说明: 1.depends on:表示该类依赖于下面的jar包列表。 2.refrenced by:表示该类被下面的jar列表所依赖。 3.unresolved references:表示该类下的某些方法,找不到依赖jar包。一般出错时就是...
jdk的classpath路径和环境配置 jdk的classpath路径和环境配置
本文详细介绍了path与classpath,以及它们之间的区别。
classpath修改,相关jsp页面classpath修改
Android 4.4.4源码的.classpath文件,主要用于将Android 4.4.4源码的导入到eclipse工具中,提供给需要学习android源码的同学,也自己顺便记录一下,方便查找。
CLASSPATH="$CLASSPATH:""$jar" done windows : SETLOCAL ENABLEDELAYEDEXPANSION set LIB=xx set CLASSPATH=. FOR %%C IN (LIB\*.jar) DO set CLASSPATH=!CLASSPATH!;%%C echo %CLASSPATH%
一份详细解释java的classpath和package的含义和配置方法的文档。
本人在学习java的过程中深受classpath的折磨,为了让初学者少走弯路,我将这些经验总结了一番,总结了多种classpath的基本使用情况和常见的一些问题,以及解决方案和原理,供大家参考
本文详细叙述了.classpath中各种属性的含义
.classpath
classpath备份
详细讲解了java classpath 的详细过程,让你不在为配置java环境而烦恼,讲的非常好!word格式的!
本文档介绍了spring中的在classpath中加载配置文件
classpath 和path