之前配置完JDK没有在CMD环境下测试,因为一直用eclipse开发,eclipse使用自带的,所以没有发现电脑上的配置错误。
原先按照网上的配置:用户变量:JAVA_HOME : D:\Program\jdk1.6.0_24
系统变量:ClassPath :.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%CATALINA_HOME%\lib
Path :%JAVA_HOME%\bin;%CATALINA_HOME%\bin;
在cmd下用javac编译java文件提示:javac 不是内部或外部命令。这说明配置出错了。
我把系统变量中的ClassPath和Path中的%JAVA_HOME%改为D:\Program\jdk1.6.0_24后在cmd下可以正确运行。
%JAVA_HOME%是用来替换 D:\Program\jdk1.6.0_24这一长串的。仅仅是为了方便。所以不用JAVA_HOME直接写原始路径肯定没有问题。
这样用户变量JAVA_HOME就没有用了。所以我删除JAVA_HOME变量。删除后java在cmd下仍然可以运行。
但是后来我启动tomcat时,窗口一闪而过,无法启动。
原因是:windows版本的jdk安装以后会将安装的路径写入系统的注册表里边的...很多程序不用配置JAVA_HOME是因为那些程序是直接通过读取注册表里边的路径获取了jdk的路径.比如eclipse; netbeans则是在安装的时候,安装程序会去注册表里边读取jdk的路径,直接把它写到netbeans的配置文件里边去了
而tomcat就没有这样去处理,只是简单地通过环境变量去获取jdk的路径,所以要运行tomcat一般都是要配置环境变量的..如果不配置也可以,修改tomcat/bin/startup.bat...tomcat这样做也是出于跨平台考虑的...因为系统注册表是只有windows系统才有的
把JAVA_HOME变量再加上后tomcat可以正常启动
ps:配置tomcat: CATALINA_HOME=tomcat目录
CATALINA_BASE =tomcat目录
把tomat安装目录lib下的servlet.jar追加到classpath中去,修改后的classpath如下:
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\lib\servlet.jar;
至于为什么把D:\Program\jdk1.6.0_24用%JAVA_HOME%替换出错是什么原因还不清楚。