技术中心

这里象征着我们的态度和能力

>JAVA编程解析之classpath的深入理解
作者:中国IT实验室    来源:中国IT实验室    发布时间:2012-03-12      浏览次数:7871
分享到:
欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

    现在的JAVA编程是内容最多也是难度最大的程序,对于每一个程序员来说,对每个知识都要进行深入的理解,这也是一个循序渐进的一个过程,本文章主要对于classpath作一个深入的解析,希望对各位朋友们有所帮助。

    jvm的类加载分三中方式:

    系统级别:rt.jar

    扩展级别:java_home/jre/lib/ext/目录下的jar文件

    应用级别:环境变量中的classpath或javac   java中的参数指定java   -classpath        …

    或者自己写ClassLoader加载。

    前面2中是JVM自动处理。其中第二种是为了处理Java的classpath灾难而提供的解决方案。

    实际上java虚拟机是由java luncher初始化的,也就是java(或java.exe)

    这个程序来做的。   虚拟机按以下顺序搜索并装载所有需要的类:

    1,   引导类:   组成java平台的类,   包含rt.jar和i18n.jar中的类。

    2,   扩展类:   使用java扩展机制的类,都是位于扩展目录($JAVA_HOME/jre/lib/ext)

    中的。jar档案包。

    3,   用户类:   开发者定义的类或者没有使用   java   扩展机制的第三方产品。   你必须在

    命令行中使用   -classpath   选项或者使用   CLASSPATH   环境变量来确定这些类的位置。   我

    们在上面所说的用户自己的类就是特指这些类。

    这样,   一般来说,   用户只需指定用户类的位置,   引导类和扩展类是 "自动 "寻找的。

    当你的程序需要第三方的类库支持,   而且比较常用,   就可以采用此种方法。比如常

    用的数据库驱动程序,   写   servlet   需要的   servlet   包等等。   设置方法就是在环境变量中

    加入   CLASSPATH.   然后就可以直接编译运行了。而你的程序只用了些基础类,寻找时,就用不

    着必须设定它。

    在执行Java程序的时候,会自动加载程序用中需要的在rt.jar和其他java_homejrelib中包含的。jar文件中包含的Java基础类库和一些扩展类库。这些都是JVM自动处理的,对用户来说是透明的。

    如果Java程序中使用到了一些应用级别的类(如第三方的类),可以在javac和java中的-classpath选项中指定它们的搜索路径,或者是自 己写ClassLoader加载,另外也可以设置ClassPath环境变量,在里面指定那些蝶阀应用级别的类的搜索路径。

    设置ClassPath环境变量不是必须的,只是为了方便使用,设置了ClassPath,JDK就会按ClassPath制定的路径去搜索需要的应用级别的类,而不必每一次都使用-classpath选项或自己写ClassLoader。

    还有需要注意的就是:如果相关的类就在当前工作目录下的话,上面3种方法都可以不要,因为JDK系统会首先搜索会在当前的工作目录中搜索程序相关的类。 (在jdk1.6.0.20下已经验证)

    呵呵,如果有不当定额管理处,请指正啊------

4000-880-989
(24小时热线)
联系客服
微信公众号

官方公众号

小程序

©2008-2022 CORPORATION ALL Rights Reserved. 昆明奥远科技有限公司版权所有 滇ICP备09003328号-1 滇公网安备 53011102000818号 增值电信业务经营许可证号:滇B2-20110045
昆明那家网络公司好,新媒体运营,网站优化,网络推广,网站建设,网页设计,网站设计,网站推广,云南网站公司,昆明新媒体公司,云南网红主播,昆明SEO公司,昆明网站建设,昆明网络推广,昆明网站优化,昆明网站推广,红河网站建设,大理网络公司,曲靖网络公司,丽江网站设计,昭通网络公司,保山大数据服务,智慧高速建设,智慧校园服务,云南IDC服务商,网络安全测评,等保测评,网站关键词排名优化服务,服务客户尽超2000余家,一切尽在奥远科技,服务电话:13888956730