Java CLASSPATH

CLASSPATH

定义

The class path is the path that the Java runtime environment searches for classes and other resource files

设定方式

1,环境变量CLASSPATH

2,java/javac -cp 或者 -classpath

设定场景

CLASSPATH的设定取决于你设定的对象,大致有三种场景:

1,对于jar或者zip文件(包含class文件),CLASSPATH需要设置为jar或zip文件全路径,例如:

java -cp /java/MyClasses/myclasses.jar utility.myapp.Cool

2,对于class文件中,没有首行package定义的class,CLASSPATH需要设置为改class文件所在的目录即可

3,对于class文件中,首行有明确package定义的class,CLASSPATH需要设置为package定义中包含root package的目录即可

CLASSPATH和package的区别

package是java文件中首行的定义,通常我们会将java文件组织到一个package下面,而对于class文件而言,CLASSPATH就是包含package定义中的root package的目录!

通配符 * 注意事项

如果CLASSPATH中存在通配符,例如

java -cp /java/libs/* utility.myapp.Cool

这样只会将/java/libs/目录下的以.jar或者.JAR结尾的文件作为CLASSPATH,并不会包含class文件。

但是如果想同时包含class文件和jar文件作为CLASSPATH,可以配置

java -cp /java/libs/*:/java/libs utility.myapp.Cool

其中:代表多个CLASSPATH之间的隔离符号

How The JVM find Classes

当Java Launcher启动JVM后,JVM主要从三个地方寻找class:

1, Bootstrap classes

就是rt.jar和jre/lib目录下的其他几个jar包

2,Extension classes

jre/lib/ext目录下的几个jar包

3,User classes

通过CLASSPATH指定的目录或者jar包

原文 

https://segmentfault.com/a/1190000023094505

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Java CLASSPATH

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址