to leejidongdong(立即动动):不知道你有没有仔细看清楚上面的帖子,我已经去掉ClassPath,一切OK!作为反证法,一个足矣!
To gameboy999(预防非典,从我做起):ClassPath是默认,也是全局,其实是一个意思。首先,我不设置ClassPath,JVM照样能够正确装载标准的运行库,说明其内部有某种机制来查找。其次,对于公用库(第三方库),我可以使用ClassPath,但是不推荐。所以,ClassPath本身就是没有必要的!这就是我的推论。ps:java类别查找器在英文Win2K(Local:English)下显示的是乱码。
to optman(optman) default的jre,一般就在你系统盘的program files下 JAVA_HOME确实是个约定俗成的东东,很多bat文件使用它来找jre或jdk例如tomcat的setclasspath.bat中有: if not "%JAVA_HOME%" == "" goto gotJavaHome
你说classpath是全局,其实它应该是默认才是
你自己不是也说可以使用java -cp加你自己的classpath吗我自己认为除了JDK标准包文件外,要是我引用了别的文件,我会把它打入自己的应用程序,而不是利用classpath加额外的包
Java Runtime Envirement:Use Java Plug-in Default只是不知道Default这个东西,到底在哪里?而且,我们也看到所有已经安装的JRE目录,估计是有个地方存放所有这些列表的。JAVA_HOME的设置,容易理解,主要是告知JRE的位置,特别是有很多JRE的时候。我很纳闷,为什么SUN在JRE的安装程序里,没有自动设置这个JAVA_HOME环境变量呢?或许,JAVA_HOME的使用,仅仅是人们为了方便约定俗成的约定而已,而非SUN官方的标准。另外,很多JAVA程序,在自己的启动程序里,比如BAT文件里,内部设定JAVA_HOME这个变量,作为内部使用,或许这样更好!
以前jre是很依赖classpath这个变量的--你可以装jdk1.1左右的版本,然后把CLASSPATH环境变量删掉,就会连基本的启动主线程都报出找不到CLASS的错误。
JAVA_HOME确实是个约定俗成的东东,很多bat文件使用它来找jre或jdk例如tomcat的setclasspath.bat中有:
if not "%JAVA_HOME%" == "" goto gotJavaHome