Компиляция сервлетов с javac - PullRequest
3 голосов
/ 26 апреля 2011

Я хочу скомпилировать сервлеты вне NetBeans. Я сделал простой сервлет Hello World, который выдает эти ошибки компилятора.

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

Очевидно, что пакет javax.servlet не может быть найден. У меня javax.servlet.jar из установки GlassFish, но если я делаю javac ServletTester.java -classpath /opt/glassfish3/glassfish/modules/, я все равно получаю те же ошибки.

Как правильно вручную скомпилировать сервлеты?

Ответы [ 2 ]

6 голосов
/ 26 апреля 2011

Попробуйте:

$ javac -classpath .:/opt/glassfish3/glassfish/modules/javax.servlet.jar ServletTester.java 

Обратите внимание, что имена файлов JAR в classpath должны быть полностью указаны.Просто их содержащий каталог не достаточно.Использование символов подстановки также разрешено (как указано в одном комментарии).

2 голосов
/ 26 апреля 2011

Плюс, рассмотрим Maven.У него есть архетипы, которые дают вам рабочий шаблон для создания веб-приложений с множеством различных прикладных сред;есть простой архетип веб-приложения, который автоматизирует то, что вы пытаетесь сделать здесь.

Ручная компиляция java обычно не является хорошим планом;Существуют инструменты сборки для автоматизации обработки и жизненного цикла проектов.Они зрелые и полезные.

...