• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:servletのコンパイルエラーについて)

servletのコンパイルエラーについて

このQ&Aのポイント
  • Apache Tomcat 5.5.12にてサンプルプログラムHelloWorld .javaをコンパイルするとエラーが出てしまいます。CLASSPATHなどの設定も一通りサイトを参照して設定してみましたが、解決には至りませんでした。
  • 質問者はJAVA初心者で、問題を解決するために調査を行ったが失敗した。
  • 質問者は、HelloWorldServlet.javaをコンパイルする際に「;」のエラーが出てしまい、解決方法がわからないと相談している。

質問者が選んだベストアンサー

  • ベストアンサー
noname#235174
noname#235174
回答No.3

こんばんわ >Apache Software Foundation\Tomcat 5.5\common\libの配下には >servlet.jarは無くservlet-api.jarならあります、 Tomcat5からはservlet-api.jarになったのは知っていますが APIのパッケージまで変わったという記憶はありません。 servlet-api.jarをzip解凍して、本当にjavax\servlet-api\という フォルダが含まれているか一度確認したほうがいいのではないでしょうか。 ちなみに当方のTomcat5.5.17にはcommon\lib\servlet-api.jarはありますが その中にjavax.servlet-apiというパッケージは含まれておりません。 ソースも以下で動くと思います。 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorldServlet extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // ContentTypeを設定 response.setContentType("text/html; charset=Shift_JIS"); // 出力用PrintWriterを取得 PrintWriter out = response.getWriter(); // 出力 out.println("<html>"); out.println("<head>"); out.println("<title>Hello World Servlet</title>"); out.println("</head>"); out.println("<body>"); out.println("Hello World"); out.println("</body>"); out.println("</html>"); } }

ko_jap
質問者

お礼

すいません、"-api"を削除してコンパイルしたところ 成功しました、しかし最初は、"-api"を省いてコンパイルした ところエラーが出てできなかったのでimport javax.servlet-api.*; を追加してしまいました。 以前とクラスパスも変えてないのに出来たのは不思議です・・・ 二度にわたる解答どうもありがとうございました、 これから頑張ってJAVAを習得したいと思います。

その他の回答 (2)

noname#235174
noname#235174
回答No.2

import javax.servlet-api.*; じゃなくて import javax.servlet.*; なのでは?

ko_jap
質問者

補足

Apache Software Foundation\Tomcat 5.5\common\libの配下には servlet.jarは無くservlet-api.jarならあります、 サイトも参照しましたがこちらが正しいようです。 ソースを載せます。 ---------------ここから----------------- import java.io.*; import javax.servlet-api.*; import javax.servlet.http.*; public class HelloWorldServlet extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // ContentTypeを設定 response.setContentType("text/html; charset=Shift_JIS"); // 出力用PrintWriterを取得 PrintWriter out = response.getWriter(); // 出力 out.println("<html>"); out.println("<head>"); out.println("<title>Hello World Servlet</title>"); out.println("</head>"); out.println("<body>"); out.println("Hello World"); out.println("</body>"); out.println("</html>"); } } ---------------ここまで-----------------

回答No.1

クラスパスの話じゃなくて、プログラム内で「;」がなかったり、 その直近で何かおかしな記述してたりしてません?

ko_jap
質問者

補足

ハットの位置がずれてました。 HelloWorldServlet.java HelloWorldServlet.java:2: ';' がありません。 import javax.servlet-api.*;           ^ import javax.servlet-api.*; の部分を指摘されてると思うのですがセミコロンは記述してます。

関連するQ&A