javaサーブレットのコンパイルの話
基本的なことですが、時々忘れてしまって検索する羽目になるので備忘録。
サーブレットは"HttpServlet"クラスを継承しておりHttpServletクラスの様々なメソッドを利用しているらしい。
なのでHttpServletが存在するクラスパスを指定してあげないとClassNotFoundになりコンパイルがこける。
まずはクラスパスを指定しないでコンパイルしてみると
上図のように見事にコケる。
関連クラスを見つけられないからだと思う。
そこで-classpathオプションでHttpServletクラスを含むservlet-api.jarを指定して上げる
ちなみに"servlet-api.jar"は"[Tomcatホーム]/lib"に含まれるので環境変数やパスを通してない場合はフルパスで指定する。
結果↓
コンパイルが通っているのがわかる。
以上
※何か間違っていたり、こうしたほうがいいということがあればどしどしコメントください。
javaはほぼ独習なのでめっちゃよろこびます。
----追記----
ちなみにサーブレットをコンパイルするときに"-d"オプションを使って"classes"フォルダに落としておくといちいちコピーしなくても便利なのでいつもしてます。
(ちょっとあほそうなのでなにかいい方法があればご教授ください、、)