Java将无法使用RequestDispatcher进行编译,并且正确设置了类路径 [英] java won't compile with RequestDispatcher, classpath set correctly

查看:78
本文介绍了Java将无法使用RequestDispatcher进行编译,并且正确设置了类路径的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用ubuntu,并且一直根据我的研究和之前有关编译问题的帖子尝试进行编译。这次我怀疑是CLASSPATH,但无法弄清楚到底是什么问题。

I'm using ubuntu and I've been trying to compile based on my research and my previous posting regarding to compilation issue. This time I suspect CLASSPATH but cannot figure out what is wrong really.

(我要包含的Java文件)

(The java file I want to complie)

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

这是Servlet类,它使用RequestDispatcher类扩展了HttpServlet。

This is the servlet class that extends HttpServlet thus using RequestDispatcher class.

我在Tomcat的目录中有servlet-api.jar:

I have servlet-api.jar in tomcat directory:

/home/makun/tomcat/apache-tomcat-6.0.26/lib/servlet -api.jar

所以我将路径添加到CLASSPATH,然后我的CLASSPATH看起来像:

So I added the path to CLASSPATH then my CLASSPATH looks like:

CLASSPATH = / usr / bin;。; / home / makun / tomcat / apache-tomcat-6.0.26 / webapps / head_first / src; / usr / share / java / lib; / home / makun / Desktop / java_run; /主页/makun/tomcat/apache-tomcat-6.0.26/webapps/head_first/src;/usr/share/java/lib;/home/makun/tomcat/apache-tomcat-6.0.26/lib;/主页/makun/tomcat/apache-tomcat-6.0.26/lib/servlet-api.jar

CLASSPATH=/usr/bin;.;/home/makun/tomcat/apache-tomcat-6.0.26/webapps/head_first/src;/usr/share/java/lib;/home/makun/Desktop/java_run;/home/makun/tomcat/apache-tomcat-6.0.26/webapps/head_first/src;/usr/share/java/lib;/home/makun/tomcat/apache-tomcat-6.0.26/lib;/home/makun/tomcat/apache-tomcat-6.0.26/lib/servlet-api.jar

现在我尝试我当前目录中的mplie RegisterServlet.java是 /home/makun/tomcat/apache-tomcat-6.0.26/webapps/head_first
/ src / com / masatosan / registerservlet

Now I try to complie RegisterServlet.java from my current directory which is /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

然后出现邪恶错误...

Then evil errors show up...

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吗?

Can anyone help me point out why my complier cannot locate the RequestDispatcher?

根据建议,我在CLASSPATH中删除了分号并更改为冒号,还只需运行 javac -verbose RegisterServlet.java 即可

As per suggestion, I've removed semi-colon and change to colon in my CLASSPATH and also simply run javac -verbose RegisterServlet.java and it complied successfully.

推荐答案

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

您正在重写CLASSPATH env这里可变。您似乎还用; 分隔类路径条目,在* nix上,您可能需要。如果您的CLASSPATH env变量是已导出,请这样做

You're overriding the CLASSPATH env variable here. You also seem to seperate the classpath entries with a ; , on *nix you might need a : instead. If your CLASSPATH env variable is exported, just do

 javac -verbose RegisterServlet.java

 javac -cp $CLASSPATH -verbose RegisterServlet.java

这篇关于Java将无法使用RequestDispatcher进行编译,并且正确设置了类路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆