当前位置: 技术问答>java相关
请问,$JAVA_HOME/jre/ext 和 CLASSPATH 的区别和联系?
来源: 互联网 发布时间:2015-10-15
本文导语: 声明.jar文件(例如mail.jar ,servlet.jar ,j2ee.jar)时,放在上面两个地方有什么区别? 谢谢! | 我认为它们应该没有区别,只是处理的先后顺序不同。你把liblocale目录拷到$JAVA_HOME/jre/lib/ext/中再试一试看会不会出...
声明.jar文件(例如mail.jar ,servlet.jar ,j2ee.jar)时,放在上面两个地方有什么区别?
谢谢!
谢谢!
|
我认为它们应该没有区别,只是处理的先后顺序不同。你把liblocale目录拷到$JAVA_HOME/jre/lib/ext/中再试一试看会不会出错?
|
当找不到类时,JVM先找$JAVA_HOME/jre/lib/ext/目录,然后在按CLASSPATH设置的找。你所说的错误可能是这样:放在$JAVA_HOME/jre/lib/ext/时,JVM首先在J2EE.jar里找到了所需要的类,但由于这个类是错误的版本或其他原因,导致你的程序错误。如果将j2ee.jar放在CLASSPATH中,注意:在设置CLASSPATH时,你是不是把j2ee.jar写在了其他包的后面?如果是这样,JVM是按先后顺序找的,则很可能在j2ee.jar之前在其他包中找到了所需要的类,而且是正确版本,所以j2ee.jar中的错误版本的同样的类就不会被使用了。