java 加载类库的顺序

      今天早上被一个问题折磨了半天:为什么把同样的包放在不同的地方,运行的结果不一样?后来才发现原来不小心把hibernate所在的类包设置成了系统类包。这使我对java对类库的加载顺序产生了兴趣,于是google了下,呵呵,收获不小。

      java加载库的方法跟它的CLASSLOADER有关,不同的JVM有不同的CLASSLOADER。现介绍J2SDK自带的JVM的加载顺序。 

        首先,JAVA会跟据系统的参数CLASSPATH,把参数里所包含的JAR(ZIP,目录)加载。只要使用该JVM,不用设置CLASSPATH,程序里用到类就会自动到这里面找到并加载。

        其次,在我们运行java.exe 运行某个程序时,也可以加上-classpath(-cp)加上所用到的包。不过这些包只在这次运行会有效,对别的程序运行并没影响。
       最后,程序还会从当前目录(当前包)里加载类文件。(废话一句)
       象TOMCAT就是用第二种再把附加的包加进去的。所以在TOMCAT中使第三方的包有两种方法可以把把这些包加进去。一种就是在系统的参数CLASSPATH中加上,另一种方法就是修改bat文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值