小弟我新学习Java,遇到一个问题。下面我把问题详细说出来,请大侠们帮助解决,谢谢!首先是安装JDK,我下载的是J2SE的JDK 6 update 14这个版本。使用默认安装,路径是“C:\Program Files\Java”。然后设置相应的环境变量,并写了一个简单的“Hello World”,使用javac和java命令,能够编译运行通过。这没有问题!然后是安装Tomcat,版本是6.0.20。使用默认安装,路径是“C:\Program Files\Apache Software Foundation\Tomcat 6.0”。安装完成后,使用浏览器,键入“http://localhost:8080”,能看到相应的页面,这也没有问题!接下来,我写了一个Servlet,代码如下:
import javax.Servlet.*;
import javax.Servlet.http.*;
import java.io.*;public class WebHelloWorld extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException{

PrintWriter out = response.getWriter();
java.util.Date today = new java.util.Date();

out.println("<html><body><h1>这是Hello World的Web版</h1><br><h3>现在的时间是:" + today + "</h3></body></html>");
}
}接下来,就是编译这个文件了,我使用cmd命令,转到这个文件所在的目录下,键入如下指令:
javac -classpath C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar WebHelloWorld.java结果给我如下错误指示:
-------------------------
javac:无效的标志:Files\Apache
-------------------------这样不行,我就按照网上所说的那样,配置环境变量。我的相应的环境变量如下:
JAVA_HOME = C:\Program Files\Java\jdk1.6.0_14
TOMCAT_HOME = C:\Program Files\Apache Software Foundation\Tomcat 6.0
CLASSPATH = .;%JAVA_HOME%\lib;%TOMCAT_HOME%\lib
Path后面追加信息:;%JAVA_HOME%\bin然后转到代码所在位置进行编译,输入:javac WebHelloWorld.java。它就提示我:
----------------------------
WebHelloWorld.java:2: 软件包 javax.Servlet 不存在
import javax.Servlet.*;
^
WebHelloWorld.java:3: 软件包 javax.Servlet.http 不存在
import javax.Servlet.http.*;
^
WebHelloWorld.java:6: 找不到符号
符号: 类 HttpServlet
public class WebHelloWorld extends HttpServlet{
                                   ^
......(下面还有其他错误,就不复制了)
----------------------------我在按照网上的提示,将servlet-api.jar拷贝到“C:\Program Files\Java\jdk1.6.0_14\jre\lib\ext”下面,问题依然存在,仍旧是提示我找不到相应的包!请问大家,这个问题该怎么解决?谢谢!在线急等,希望这个问题不到打击我学习JAVA的信心啊,哈哈!

解决方案 »

  1.   

    CLASSPATH = .;C:\Program Files\Java\jdk1.6.0_14\lib;C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib path=C:\Program Files\Java\jdk1.6.0_14\bin把环境变量改正确了看看。。
      

  2.   

    78年也需要不断的学习啊,对我来说,JAVA现在就是新知识,呵呵!
      

  3.   

    3楼的朋友,环境变量设置应该没有问题啊。
    JAVA_HOME = C:\Program Files\Java\jdk1.6.0_14
    TOMCAT_HOME = C:\Program Files\Apache Software Foundation\Tomcat 6.0
    所以,在CLASSPATH里面,就直接以%JAVA_HOME%和%TOMCAT_HOME%代替了。实际上,我也曾经在CLASSPATH里面设置了全路径名,和您的写法一样,问题依然存在。并且觉得使用%JAVA_HOME%代替的写法不会有问题,所以没有在帖子里面写出来
      

  4.   

    Path后面追加信息:;%JAVA_HOME%\bin;%JAVA_HOME%\lib;CLASSPATH = %JAVA_HOME%\lib;
      

  5.   

    8楼的朋友,按照您的提示操作,问题依然存在!
    1楼的朋友,JDK还没有重装,我再等等看,是否能有不重新安装即可解决的方法!(吃饭去了,一会回来)
      

  6.   

    呜呜。。
    俺知道错了。。
    这是俺自家的环境变量配置,你看看吧。。
    JAVA_HOME=D:\java\jdk1.5
      
    PATH =D:\java\jdk1.5\bin;D:\java\jdk1.5\jre\bin   
        
    CLASSPATH =.;D:\java\jdk1.5\lib;D:\java\jdk1.5\lib\tools.jar
    希望对您有帮助。。
    俺也是菜鸟,不太懂啦。。
      

  7.   

    现在的ide这么先进,为什么还用cmd呢,用cmd时要保证编译运行的累所引用的所有包都被加载到虚拟机,建议把常用的包放到tomcat的common/lib下
      

  8.   

    把环境变量写在path的前面,并用";"与后面的分开,再试一试.楼主的学习精神可贵,这个问题肯定能解决.
    但我感觉可能是"我在按照网上的提示,将servlet-api.jar拷贝到“C:\Program Files\Java\jdk1.6.0_14\jre\lib\ext”下面,问题依然存在,仍旧是提示我找不到相应的包!"出错了,应该将这些jar包放在tomcat的WEB-INFO里的lib包下.我也一直IDE,弄的最基本的都不会,楼主的学习精神值得学习.
      

  9.   

    这样弄的时候,你需要将所有的直接导入,而不能用*号:
    import java.io.IOException; 感觉你的servlet少了一下异常吧?throws IOException,ServletException
      

  10.   

    1,不要把 Tomcat 装在带有空格的路径之中,因为命令行的参数是使用空格分隔的。
    2,设置 JAVA_HOME 这个环境变量,Tomcat 启动时需要用到的,值为 JDK 的安装目录,注意是 JDK 的安装目录。tomcat 的话使用 zip 版的就可以了,直接解压缩之后就能使用了,嘿嘿,以后不想用了,可以再换个其他版本的。
      

  11.   


    嗯,从编译的报错来看,我也觉得可能是Tomcat安装路径带有空格的关系。但是,因为JDK的安装也是默认路径(在c:\program files\的下面),编译标准控制台的JAVA程序没有问题。所以我就没有想重装。现在,按照您的建议,我重装一下看看。呵呵
      

  12.   

    我会试一试您建议的写法。另外,我现在看得书是《Head First Servlet &JSP》(中文版),它里面第一个例子只抛出IOException异常。我觉得是否加上ServletException关系不是很大,对程序的主体逻辑应该不会有影响的!
      

  13.   

    呵呵,选择最基本的开发环境。一则是刚开始学,书本上建议不要借助工具,可以了解细节!二则是不太会用现在的IDE,我下载了Eclipse和NetBeans,只是很惭愧,都不太会用,呵呵。决定等以后逐渐使用工具。还需要去买专门的书才行呢,呵呵!
      

  14.   

    你那代码是没有问题的,你的环境变量也是没有问题的, 
    问题是:import javax.Servlet.*; 
           import javax.Servlet.http.*; 
           import java.io.*; 
    你导入了 * 即所有,无关的也加进去了,这样问题就出来了哦解决方法:1.只导入要用到具体的包,无关的去掉
             2.需配置一个环境变量   classpath=<%=setuppath %>\common\lib\tools.jar
      

  15.   

    是不是因为你安装的tomcat路径有空格?这点安装tomcat 的时候一定要注意
      

  16.   

    接下来,就是编译这个文件了,我使用cmd命令,转到这个文件所在的目录下,键入如下指令: 
    javac -classpath C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar WebHelloWorld.java 结果给我如下错误指示: 
    ------------------------- 
    javac:无效的标志:Files\Apache 
    ------------------------- =================================================
    将带空格的文件及路径加上双引号
    javac -classpath "C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar" WebHelloWorld.java 还会有其他的问题。再解决。
    =================================================
    然后转到代码所在位置进行编译,输入:javac WebHelloWorld.java。它就提示我: 
    ---------------------------- 
    WebHelloWorld.java:2: 软件包 javax.Servlet 不存在 
    import javax.Servlet.*; 

    WebHelloWorld.java:3: 软件包 javax.Servlet.http 不存在 
    import javax.Servlet.http.*; 

    WebHelloWorld.java:6: 找不到符号 
    符号: 类 HttpServlet 
    public class WebHelloWorld extends HttpServlet{ 
                                      ^ 
    ......(下面还有其他错误,就不复制了) 
    ---------------------------- 我在按照网上的提示,将servlet-api.jar拷贝到“C:\Program Files\Java\jdk1.6.0_14\jre\lib\ext”下面,问题依然存在,仍旧是提示我找不到相应的包! =================================================
    servlet-api.jar引入到classpath中
    javac -classpath %CLASSPATH%;"C:\Program Files\Java\jdk1.6.0_14\jre\lib\ext\servlet-api.jar" WebHelloWorld.java C:\Program Files\Java\jdk1.6.0_14\jre 这个文件夹下是运行时用到的,编译时用的是C:\Program Files\Java\jdk1.6.0_14\lib,可以复制在这里试试。或者直接修改环境变量classpath,添加C:\Program Files\Java\jdk1.6.0_14\jre\lib\ext\servlet-api.jar还会有其他的问题。再解决。
    =================================================
      

  17.   

    问题搞定了,哈哈!我分析90%是代码的问题,大小写没有注意!应该是import javax.servlet.*而不是import Servlet.*  改了大小写以后,javac就能顺利编译通过了!按照前面一些朋友的建议,我重新安装了JDK和Tomcat,去掉了路径中的空格。然后设置环境变量,如下:
    JAVA_HOME = C:\Java\JDK1.6.0_14
    TOMCAT_HOME = C:\TOmcat
    CLASSPATH = .;%JAVA_HOME%\lib;%TOMCAT_HOME%\lib\servlet-api.jar
    path = %JAVA_HOME%\bin在这样设置之后,如果不改大小写,编译依然无法通过。改了之后就好了。谢谢大家的热心帮助!!!
      

  18.   

    对了,再补充一句,按照15楼朋友的建议,我使用了zip格式的Tomcat,没有使用安装文件。不知道这个解决问题是不是有关系!
      

  19.   

    应该是jdk或者tomcat安装路径有空格的原因。如果有空格的话,可能会出现很诡异的问题,呵呵。楼主真是我等楷模啊