2017-06-12 56 views
0

基本上我有一个名为find.java的servlet使用Eclipse IDE创建。find.java:14:错误:无法找到符号JAVA

的问题是什么编译它我得到这些错误:

D:\pack>javac find.java 
find.java:4: error: package javax.servlet does not exist 
import javax.servlet.ServletException; 
        ^
find.java:5: error: package javax.servlet.annotation does not exist 
import javax.servlet.annotation.WebServlet; 
          ^
find.java:6: error: package javax.servlet.http does not exist 
import javax.servlet.http.HttpServlet; 
         ^
find.java:7: error: package javax.servlet.http does not exist 
import javax.servlet.http.HttpServletRequest; 
         ^
find.java:8: error: package javax.servlet.http does not exist 
import javax.servlet.http.HttpServletResponse; 
         ^
find.java:12: error: cannot find symbol 
public class find extends HttpServlet { 
         ^
    symbol: class HttpServlet 
find.java:11: error: cannot find symbol 
@WebServlet("/find") 
^ 
    symbol: class WebServlet 
find.java:14: error: cannot find symbol 
     protected void doGet(HttpServletRequest request, HttpServletResponse res 
ponse) throws ServletException, IOException { 
          ^
    symbol: class HttpServletRequest 
    location: class find 
find.java:14: error: cannot find symbol 
     protected void doGet(HttpServletRequest request, HttpServletResponse res 
ponse) throws ServletException, IOException { 
                 ^
    symbol: class HttpServletResponse 
    location: class find 
find.java:14: error: cannot find symbol 
     protected void doGet(HttpServletRequest request, HttpServletResponse res 
ponse) throws ServletException, IOException { 
      ^
    symbol: class ServletException 
    location: class find 
10 errors 

正如你可能已经注意到,错误被抛出的Java web应用程序内置变量如HttpServletRequestHttpServletResponse

的原因根据我的知识,我会说这可能是由于找不到编译该文件所需的库。

所以,我想这:

D:\pack>set CLASSPATH="C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib\*.jar":%CLASSPATH% 

D:\pack>set CLASSPATH="C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib\*":%CLASSPATH% 

D:\pack>set CLASSPATH="C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib\servlet-api.jar":%CLASSPATH% 

然后javac find.java

但没有工作,也是我的环境变种iables被定义为:

用户变量为没有人:

Variable Name: CLASS 
Variable Value: C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib;C:\Program Files\Java\jdk8\lib 

系统变量:

Variable Name: jdk 
Variable Value: C:\Program Files\Java\jdk8 

Variable Name: path 
Variable Value: C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\MySQL\MySQL Utilities 1.6\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Java\jdk8\bin 

供参考:我已经测试我的servlet find.java在Eclipse的IDE与发送和响应请求其找到了,但现在我需要部署它来创建.war文件。但我发现了这些错误

许多鉴赏:)

+0

@Jens不是我误会了你,就是你错了。如果我们看看http://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html - >“类路径通配符”部分,它解释了'*'是“*认为是等价的指定扩展名为.jar或.JAR *的目录中所有文件的列表“。我不是JEE开发人员,所以我不确定正确的库的位置,但也许问题是OP应该只使用'*'而不是'* .jar'。 – Pshemo

+0

@jens好吧,我花了一点时间,但我做了,仍然没有工作 –

回答

0

好吧,我发现我的回答,认为它可能帮助下一代。

所以我猜它没有找到所需的图书馆穿正确。但不是使用

set CLASSPATH="C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib\*":%CLASSPATH% 

其他我用:

javac -cp "C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib\*" find.java 

其在这里-cp标签代表的CLASSPATH find.java位于哪个编译同一目录中的程序。

祝你好运:)

相关问题