[英]java won't compile with RequestDispatcher, classpath set correctly
我使用的是ubuntu,根據我的研究和之前有關編譯問題的帖子,我一直在嘗試進行編譯。 這次我懷疑是CLASSPATH,但無法弄清楚到底是什么問題。
(我要包含的Java文件)
/home/makun/tomcat/apache-tomcat-6.0.26/webapps/head_first
/src/com/masatosan/registerservlet/RegisterServlet.java
這是使用RequestDispatcher類擴展HttpServlet的servlet類。
我在Tomcat的目錄中有servlet-api.jar:
/home/makun/tomcat/apache-tomcat-6.0.26/lib/servlet-api.jar
所以我將路徑添加到CLASSPATH中,然后我的CLASSPATH看起來像:
CLASSPATH =的/ usr / bin中;; /家/ makun / tomcat的/ Apache的Tomcat的6.0.26 / webapps /下head_first / src目錄;在/ usr / share / java目錄/ lib目錄; /家/ makun /桌面/ 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;/home/makun/tomcat/apache-tomcat-6.0.26/lib/servlet-api.jar
現在,我嘗試從當前目錄/home/makun/tomcat/apache-tomcat-6.0.26/webapps/head_first / src / com / masatosan / registerservlet編譯RegisterServlet.java
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?
根據建議,我在CLASSPATH中刪除了分號並更改為冒號,並且僅運行javac -verbose RegisterServlet.java即可成功編譯 。
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.