用javac编译servlet类出现的一系列问题及分析解决(javac编译servlet找不到javax.servlet.*包的问题)
使用编写的servlet类来响应网页请求,关于配置Tomcat服务器,设置路径等若干问题,尤其是----关于javac编译servlet类找不到javax.servlet.*包的问题,最伤脑细胞,(配置的明明都跟人家一样,却还是不行!!看看以下解决)
首先javac编译servlet类找不到javax.servlet.*包的问题,可能不是单一的某个操作错误导致的,所以得从头来看:
第一类、配置问题
1、新建环境变量TOMCAT_HOME,值设为tomcat的安装路径
2、修改CLASSPATH,值设为--> .;%TOMCAT_HOMO%\lib\servlet-api.jar
当然,不设TOMCAT_HOME,在CLASSPATH后直接写上tomcat完整的安装路径也可以.如--> .;D:\apache-tomcat\lib\servlet-api.jar,具体为什么要写XXX_HOME及CLASSPATH的解释,参见http://blog.csdn.net/ljheee/article/details/50810570
3、在TOMCAT安装目录下的lib目录下有一个servlet-api.jar,把它复制到JDK的jdk/lib/ext目录下(jre下建议也复制个相同的lib/ext)
解释:JDK中没有包含javax.servlet、 javax.servlethttp这两个包中的类。支持JavaEE的web容器如:Tomcat 都有个servlet-api.jar 这个jar包,需要利用这些包才能成功编译程序。
如果使用IDE集成开发环境编写servlet类,也需要在工程导入servlet-api.jar
第二类
1、 javax里的包一定要正确的导入,且在编译servlet时候,必须得指定类包,也就是指定相应的源文件,进行编译, 否则回找不到import的类包。
比如:javac com\ljheee\myservlet\MyServlet.java
2、如果确定以上步骤都没有问题,那么可能是这个原因了,我自己也是前面的解决方案都试了,还是不行,试了如下方案就解决了:
Tomcat的安装目录尽量不要有空格,且不要太长,且不要嵌套多个文件夹,否则会出现各种错误。最后结论是:不要把 Tomcat 装在带有空格的路径之中,因为命令行的参数是使用空格分隔的。
还有一点,很多人下载了Tomcat安装包,解压后放在某个文件夹下,并没有注意文件解压后有嵌套的子文件夹,且最主要的是文件名都很长,如apache-tomcat-8.0.23-windows-x64里面的各种符号在指令中区别混乱。
建议:下载解压后,直接放在D盘或某个盘的根目录下;文件名改简单点,如就改为tomcat,再去修改下CLASSPATH。总而言之,路径值设得越简单越好,省得在使用javac命令时,空格路径混乱。