Setting the classpath

1、类路径(Classpath)是java运行环境搜索类和其他资源文件的路径。调用JDK工具时,类搜索路径(class path)可以通过使用-classpath选项设置,或者通过设置CLASSPATH环境变量。应优先使用-classpath选项,因为这种设置方法是应用隔离的,不会影响其他应用。

C:> sdkTool -classpath classpath1;classpath2...
-or-
C:> set CLASSPATH=classpath1;classpath2...

sdkTool

命令行工具,如java,javac,javadoc,或者apt。

classpath1;classpath2
.jar,.zip或者.class文件的类路径。每个classpath都应该以一个文件名或目录结尾。

对于一个包含.class文件的.jar或者.zip文件,类路径应该以.zip或.jar文件的文件名结尾。

对于没有包名的.class文件,类路径应该以包含.class文件的目录结尾。

对于有包名的类文件,类路径应该以包含根包名的目录结尾。(如org.springframework.context.ApplicationContext,设置为org目录的父目录即可)。

2、多个路径实体通过;分割。=号两边的不能有空格。

3、默认的类路径是当前目录。使用CLASSPATH变量或者使用-classpath命令行选项来覆盖默认路径。所以,如果你想包含当前路径,必须在设置中包含"."

4、Classpath实体,如果既不是目录,也不是归档包(zip或者jar),也不是*,则会被忽略。

5、运行工具java有一个-cp选项,该选项是-classpath的缩写。

6、directory named foo. A classpath entry consisting simply of * expands to a list of all the jar files in the current directory.
类路径实体可以包含通配符*,通配符等同于指定目录下所有的.jar或.JAR扩展的文件。例如,类路径实体foo/*指定foo目录下的所有jar文件。只包含*的路径实体被扩展为当前目录下的所有jar文件。

       子目录不会递归搜索。例如foo/*只会在foo目录搜索jar文件,不会到foo/bar,foo/baz中去搜。

通配符解释是在调用程序的main方法之前,在类加载的过程中。包含通配符的类路径会被替换。例如,如果foo目录包含a.jar,b.jar和c.jar,那么foo/*会被扩展成foo/a.jar;foo/b.jar;foo/c.jar,并且该扩展后的字符串会被设置为系统属性java.class.path。

7、当类存储在目录中,如c:\java\MyClasses\utility\myapp,那么类路径实体指向包含包名第一个元素的目录。(本例中是C:\java\MyClasses,因为包名是utility.myapp.)

但是,当类存储在归档包(zip或者jar)中,类路径实体是包含.zip或.jar文件的路径。例如,要使用一个jar文件的类库,命令行应该如下:
C:> java -classpath C:\java\MyClasses\myclasses.jar utility.myapp.Cool

8、为了在目录C:\java\MyClasses和C:\java\OtherClasses目录中查找类,需要如下设置类路径:
C:> java -classpath C:\java\MyClasses;C:\java\OtherClasses ...
Note that the two paths are separated by a semicolon. 通过分号分隔。

9、Specification order 指定顺序

指定多类路径实体的顺序是很重要的。java解释器会按照类路径变量中实体出现的顺序查找类。在上面的例子中,java解释器会先在目录C:\java\MyClasses目录中查找需要的类。只有在它找不到类的时候,才会去C:\java\OtherClasses directory中查找。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值