A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐芾清 中级黑马   /  2014-3-8 21:04  /  1109 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我们都知道系统的path指向bin
classpath指向java下的lib
但现在为什么不需要设置classpath了呢?

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

2 个回复

倒序浏览
1,新版本的开发工具基本上不需要设置CLASSPATH,尤其是指向tools.jar 和rt.jar,只要能够找到jre,系统自动会找到这些jre自带的classpath(除非你人为地把这些jar文件移动到其他地方去了)

2,有些应用程序的启动程序或者启动脚本会自己设置classpath,如果系统原来有classpath,反而会造成混淆。现在用eclipse, tomcat, jboss, netbeans ,不需要设置额外的classpath都可以正常运行。

3,classpath太多也导致搜索和装载class的速度减慢,因为loadclass的时候,ClassLoader会从整个classpath里面寻找。

4,设置的classpath不利于应用的安装部署,一旦运行环境发生变化(如系统升级或者加入新的jar包)经常因手工设置的classpath不对而造成问题。尤其是,跨平台部署的时候,classpath的目录分隔符都不一样的。

5,设置classpath有时候还造成jdk或者应用程序安装时产生莫名奇妙的错误(由于预先指定的class和新安装的版本冲突导致)

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
        赞同一楼的说法,在jdk1.5及以前版本是需要设置classpath环境变量的, 变量值:.;x:\jdk1.5.0_15\lib\tools.jar;x:\jdk1.5.0_15\lib\dt.jar ,注意那一点:".",用以告诉JRE需要在当前路径下搜索java类.
       后来Sun改进了JDK的设计,JRE会自动搜索当前路径下的类文件,而且使用java的编译和运行工具时,统可系以自动加载dt.jar和tools.jar文件中的java类,因此不需要设置CLASSPATH环境变量.
      当然在jdk1.5以上版本同样还是可以设置CLASSPATH环境变量的,设置后java虚拟机就会优先在CLASSPATH配置的目录下查找

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马