Java не будет компилироваться с RequestDispatcher, путь к классу установлен правильно - PullRequest
0 голосов
/ 27 августа 2010

Я использую Ubuntu, и я пытался компилировать, основываясь на моих исследованиях и моих предыдущих публикациях, касающихся проблемы компиляции. На этот раз я подозреваю, что CLASSPATH, но не могу понять, что на самом деле не так.

(Java-файл, который я хочу завершить)

/home/makun/tomcat/apache-tomcat-6.0.26/webapps/head_first
/src/com/masatosan/registerservlet/RegisterServlet.java

Это класс сервлета, который расширяет HttpServlet, используя класс RequestDispatcher.

У меня есть сервлет-api.jar в каталоге tomcat:

/ дома / makun / кот / апач-кот-6.0.26 / Библиотека / сервлет-api.jar

Итак, я добавил путь к CLASSPATH, тогда мой CLASSPATH выглядит так:

CLASSPATH = / USR / бен;. / Дом / makun / кот / апач-кот-6.0.26 / WebApps / head_first / SRC; / USR / доли / Java / Библиотека, / дома / makun / Desktop / java_run ; /home/makun/tomcat/apache-tomcat-6.0.26/webapps/head_first/src; / USR / доли / Java / Lib; / дома / makun / кот / апач-кот-6.0.26 / Библиотека ; /home/makun/tomcat/apache-tomcat-6.0.26/lib/servlet-api.jar

Теперь я пытаюсь завершить RegisterServlet.java из моего текущего каталога, который является / home / makun / tomcat / apache-tomcat-6.0.26 / webapps / head_first / src / com / masatosan / registerservlet

javac -verbose -cp.: / Home / makun / tomcat / apache-tomcat-6.0.26 / lib ./RegisterServlet.java

Тогда появляются злые ошибки ...

makun /home/makun/tomcat/apache-tomcat-6.0.26/webapps/head_first/src/com/masatosan/registerservlet ->javac -verbose -cp .:/home/makun/tomcat/apache-tomcat-6.0.26/lib ./RegisterServlet.java 
[parsing started ./RegisterServlet.java]
[parsing completed 81ms]
[search path for source files: .,/home/makun/tomcat/apache-tomcat-6.0.26/lib]
[search path for class files: /usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/resources.jar,/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/rt.jar,/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/sunrsasign.jar,/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/jsse.jar,/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/jce.jar,/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/charsets.jar,/usr/lib/jvm/java-6-sun-1.6.0.20/jre/classes,/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/ext/sunpkcs11.jar,/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/ext/sunjce_provider.jar,/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/ext/localedata.jar,/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/ext/dnsns.jar,.,/home/makun/tomcat/apache-tomcat-6.0.26/lib]
[loading java/io/IOException.class(java/io:IOException.class)]
[loading java/util/ArrayList.class(java/util:ArrayList.class)]
[loading java/util/HashMap.class(java/util:HashMap.class)]
[loading java/util/List.class(java/util:List.class)]
[loading java/util/Map.class(java/util:Map.class)]
./RegisterServlet.java:9: package javax.servlet does not exist
import javax.servlet.RequestDispatcher;
                    ^
./RegisterServlet.java:10: package javax.servlet does not exist
import javax.servlet.ServletException;
                    ^
./RegisterServlet.java:11: package javax.servlet.http does not exist
import javax.servlet.http.HttpServlet;
                         ^
./RegisterServlet.java:12: package javax.servlet.http does not exist
import javax.servlet.http.HttpServletRequest;
                         ^
./RegisterServlet.java:13: package javax.servlet.http does not exist
import javax.servlet.http.HttpServletResponse;
                         ^
./RegisterServlet.java:16: cannot find symbol
symbol: class HttpServlet
public class RegisterServlet extends HttpServlet {
                                     ^
[loading java/lang/String.class(java/lang:String.class)]
./RegisterServlet.java:24: cannot find symbol
symbol  : class HttpServletRequest
location: class com.masatosan.registerservlet.RegisterServlet
 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                   ^
./RegisterServlet.java:24: cannot find symbol
symbol  : class HttpServletResponse
location: class com.masatosan.registerservlet.RegisterServlet
 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                                               ^
./RegisterServlet.java:24: cannot find symbol
symbol  : class ServletException
location: class com.masatosan.registerservlet.RegisterServlet
 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                                                                                    ^
./RegisterServlet.java:28: cannot find symbol
symbol  : class HttpServletRequest
location: class com.masatosan.registerservlet.RegisterServlet
 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                    ^
./RegisterServlet.java:28: cannot find symbol
symbol  : class HttpServletResponse
location: class com.masatosan.registerservlet.RegisterServlet
 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                                                ^
./RegisterServlet.java:28: cannot find symbol
symbol  : class ServletException
location: class com.masatosan.registerservlet.RegisterServlet
 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                                                                                     ^
[checking com.masatosan.registerservlet.RegisterServlet]
[loading java/util/AbstractMap.class(java/util:AbstractMap.class)]
[loading java/lang/Object.class(java/lang:Object.class)]
[loading java/lang/Exception.class(java/lang:Exception.class)]
[loading java/lang/Throwable.class(java/lang:Throwable.class)]
./RegisterServlet.java:55: cannot find symbol
symbol  : class RequestDispatcher
location: class com.masatosan.registerservlet.RegisterServlet
  RequestDispatcher dispatcher = request.getRequestDispatcher(address);
  ^
[loading java/lang/CharSequence.class(java/lang:CharSequence.class)]
[loading java/io/Serializable.class(java/io:Serializable.class)]
[loading java/lang/Comparable.class(java/lang:Comparable.class)]
[total 828ms]
13 errors

Может ли кто-нибудь помочь мне указать, почему мой компилятор не может найти RequestDispatcher?

EDIT

В соответствии с предложением я удалил точку с запятой и изменил на двоеточие в своем CLASSPATH, а также просто запустил javac -verbose RegisterServlet.java , и она успешно прошла.

1 Ответ

2 голосов
/ 27 августа 2010
 javac -verbose -cp .:/home/makun/tomcat/apache-tomcat-6.0.26/lib ./RegisterServlet.java

Здесь вы переопределяете переменную CLASSPATH env.Вы также, кажется, разделяете записи пути к классам с ;, на * nix вам может понадобиться :.Если переменная CLASSPATH env экспортирована , просто сделайте

 javac -verbose RegisterServlet.java

или

 javac -cp $CLASSPATH -verbose RegisterServlet.java
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...