使用javac编译servlet

Pie*_*ter 3 java servlets javac

我想在NetBeans之外编译servlet.我创建了一个简单的Hello World servlet,它产生了这些编译器错误.

import javax.servlet.ServletException;                                                           
                    ^                                                                            
ServletTester.java:4: package javax.servlet.http does not exist                                  
import javax.servlet.http.*;                                                                     
^                                                                                                
ServletTester.java:6: cannot find symbol                                                         
symbol: class HttpServlet                                                                        
public class ServletTester extends HttpServlet {                                                 
                                   ^                                                             
ServletTester.java:7: cannot find symbol                                                         
symbol  : class HttpServletRequest                                                               
location: class ServletTester                                                                    
        protected void processRequest(HttpServletRequest request, HttpServletResponse response) t
                                      ^
ServletTester.java:7: cannot find symbol
symbol  : class HttpServletResponse
location: class ServletTester
        protected void processRequest(HttpServletRequest request, HttpServletResponse response) t
                                                                  ^
ServletTester.java:7: cannot find symbol
symbol  : class ServletException
location: class ServletTester
        protected void processRequest(HttpServletRequest request, HttpServletResponse response) t

6 errors
Run Code Online (Sandbox Code Playgroud)

显然,javax.servlet无法找到包裹.我有javax.servlet.jar一个GlassFish安装,但如果我这样做,javac ServletTester.java -classpath /opt/glassfish3/glassfish/modules/我仍然会得到相同的错误.

手动编译servlet的正确方法是什么?

Pab*_*ruz 6

试试这个:

$ javac -classpath .:/opt/glassfish3/glassfish/modules/javax.servlet.jar ServletTester.java 
Run Code Online (Sandbox Code Playgroud)

请注意,必须完全指定类路径中的JAR文件名.只是他们的包含目录是不够的.也允许使用通配符(由一条评论指定).

  • 您应该能够使用通配符:[为特别方便,包含基本名称*的类路径元素被认为等同于指定目录中扩展名为.jar或.JAR的所有文件的列表.](http: //download.oracle.com/javase/6/docs/technotes/tools/solaris/javac.html#options) (3认同)