重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Apache Tomcat 5.5.12にてサンプルプログラムHelloWorld .javaをコンパイルするとエラーが出てしまいます。

HelloWorldServlet.java
HelloWorldServlet.java:2: ';' がありません。
import javax.servlet-api.*;
^

CLASSPATHなどの設定も一通りサイトを参照して設定してみました。

CLASSPATH
.;C:\Program Files\Java\jdk1.5.0_07\lib\tools.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar

CATALINA_HOME
C:\Program Files\Apache Software Foundation\Tomcat 5.5

PATH
C:\Program Files\Java\jdk1.5.0_07\bin

JAVA_HOME
C:\Program Files\Java\jdk1.5.0_07

JAVA初心者なので調べてみましたが解決にはいたりませんでした。
よろしかったらご教授のほどよろしくお願い致します。

A 回答 (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>");
}
}
    • good
    • 0
この回答へのお礼

すいません、"-api"を削除してコンパイルしたところ
成功しました、しかし最初は、"-api"を省いてコンパイルした
ところエラーが出てできなかったのでimport javax.servlet-api.*;
を追加してしまいました。

以前とクラスパスも変えてないのに出来たのは不思議です・・・

二度にわたる解答どうもありがとうございました、
これから頑張ってJAVAを習得したいと思います。

お礼日時:2006/08/08 21:26

import javax.servlet-api.*;


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

この回答への補足

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>");
}
}
---------------ここまで-----------------

補足日時:2006/08/08 20:20
    • good
    • 0

クラスパスの話じゃなくて、プログラム内で「;」がなかったり、


その直近で何かおかしな記述してたりしてません?

この回答への補足

ハットの位置がずれてました。

HelloWorldServlet.java
HelloWorldServlet.java:2: ';' がありません。
import javax.servlet-api.*;
          ^

import javax.servlet-api.*;
の部分を指摘されてると思うのですがセミコロンは記述してます。

補足日時:2006/08/08 01:45
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!