
JAVA初心者です。
Tomcat5.0をインストールしてサーブレットをコンパイルしようとするのですが以下のようなコメントが出て上手くいきません。
PATHの設定が原因だと思うのですがインターネットで色々調べたのですが分かりません。PATHの意味がいまいち分かっていませんがよろしくお願い致します。
システム環境変数は
CATALINA_HOME
C:\Program Files\Apache Software Foundation\Tomcat 5.0
JAVA_HOME
C:\Program Files\Java\jdk1.6.0_15
ユーザー変数は
変数名
path
変数値
c:\j2sdk1.4.2\bin
エラー内容が
c:\javasrc>javac HelloServlet.java
HelloServlet.java:5: パッケージ javax.servlet は存在しません。
import javax.servlet.*;
^
HelloServlet.java:6: パッケージ javax.servlet.http は存在しません。
import javax.servlet.http.*;
^
HelloServlet.java:8: シンボルを見つけられません。
シンボル: クラス HttpServlet
public class HelloServlet extends HttpServlet{
^
HelloServlet.java:10: シンボルを見つけられません。
シンボル: クラス HttpServletRequest
場所 : HelloServlet の クラス
public void doGet(HttpServletRequest req,HttpServletResponse res)
^
HelloServlet.java:10: シンボルを見つけられません。
シンボル: クラス HttpServletResponse
場所 : HelloServlet の クラス
public void doGet(HttpServletRequest req,HttpServletResponse res)
^
HelloServlet.java:11: シンボルを見つけられません。
シンボル: クラス ServletException
場所 : HelloServlet の クラス
throws IOException,ServletException {
^
エラー 6 個
になります。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
#4です。
誤りがあったので訂正します。例2)
誤 c:\javasrc><JAVA_HOME>\javac -classpath ......
正 c:\javasrc><JAVA_HOME>\bin\javac -classpath ......
<JAVA_HOME>はご自身の環境のjavaのインストールフォルダに置き換えて使用してくださいね
色々とご迷惑をお掛けしました。なんとか出来るようになったようです。おそらく再起動をかけたことによるのではないかと思っています。皆様、色々とご尽力頂き誠にありがとうございました。
No.4
- 回答日時:
※説明の便宜上、sdkのインストールフォルダを<JAVA_HOME>としています。
>色々と試していたらjavacが認識されなくなりました。
>c:\javasrc>javac
>'javac' は、内部コマンドまたは外部コマンド、
>操作可能なプログラムまたはバッチ ファイルとして認識されていません。
何をしたのかわからないと認識されなくなった原因までははっきりしませんが
少なくとも言えるのは環境変数pathできられているフォルダに
javac.exeファイルが存在しない(あるいはそのフォルダ自体存在していない)ということです。
直すには環境変数pathに正しくjavac.exeファイルの存在するフォルダ(即ち「<JAVA_HOME>\bin」)を示してやる必要があります。
まぁ取り急ぎコンパイルするだけならわざわざPATHは通さなくてもよいですが‥。
例えば、cdコマンドで<JAVA_HOME>\binまで移動してjavac.exeを使用してもいいですし、
javac.exeを絶対パスで指定してもコンパイルできます。
例1)
<JAVAHOME>\bin>javac -classpath "C:\Program Files\Apache Software Foundation\Tomcat 5.0\common\lib\servlet-api.jar" "C:\javasrc\HelloServlet.java"
※コンパイルされたファイル(HelloServlet.class)は「<JAVAHOME>\bin」に作成されます。
例2)
c:\javasrc><JAVA_HOME>\javac -classpath "C:\Program Files\Apache Software Foundation\Tomcat 5.0\common\lib\servlet-api.jar" HelloServlet.java
※コンパイルされたファイル(HelloServlet.class)は「d:\javasrc」に作成されます。
例1、例2ともにtomcatのインストールフォルダが「C:\Program Files\Apache Software Foundation\Tomcat 5.0」の場合の話です。

No.3
- 回答日時:
CATALINA_HOMEから想像するに、
javac -classpath "C:\Program Files\Apache Software Foundation\Tomcat 5.0\common\lib\servlet-api.jar" HelloServlet.java
でいけると思います、たぶん。
もしダメだったらTOMCATのインストール配下でservlet-ap.jarを探してその場所をclasspathに指定してください。
あと、
JAVA_HOMEのC:\Program Files\Java\jdk1.6.0_15
と
PATHのc:\j2sdk1.4.2\bin
から、少なくともJDKが2つ(1.6.0と1.4.2)インストールされているようですが、TOMCATはどちらで動くのでしょうか。
TOMCATを1.6.0で動かすならコンパイルも1.6.0でしておくべきです。
ありがとうございます。
色々と試していたらjavacが認識されなくなりました。
c:\javasrc>javac
'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
ユーザー環境変数が
path
C:\j2sdk1.4.2_04\bin
JAVA_HOME
C:\j2sdk1.4.2_04
システム環境変数が
Path
%SYSTEMROOT%\system32;%SYSTEMROOT%;%SYSTEMROOT%\COMMAND;%SYSTEMROOT%\system32\WBEM;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;c:\borland\bcc55\bin;%JAVA_HOME%\bin
私が思うにシステム環境変数の「JAVA_HOME」で
ユーザー環境変数の「JAVA_HOME」に飛んで「C:\j2sdk1.4.2_04」が認識されると思うのですがされません。また、そうであるならばユーザー環境変数のpathは必要ないと思うのですが・・。
振り出しに戻りましたがなかなか解決しません。どなたかお知恵を拝借出来ればと思います。
No.2
- 回答日時:
javaxから始まるパッケージはjavaの拡張パッケージ(eXtended package)を表すので
基本的にはjdkに含まれていません。
※jdk 1.6ではjavax.jwsなどが含まれており、必ずしも含まれないわけではないようなんですが‥
javax.jwsはJAX-WSの担当でJ2SEとは違うってことで、SUNの中では拡張として扱っているのかなぁ。わかりにくい。。
servletやjspなどはj2ee(=Java EE)の担務なので通常はAPサーバで提供しているjarを利用します。
tomcatの場合、servlet関連のパッケージはservlet-api.jarといった名前で提供されているので
それをクラスパスに含めればコンパイルが通るようになるはずです。
> 環境設定はなんでこんなに難しいのでしょうか。
慣れの問題でしょうが、TOMCATは文献も多いですし比較的楽なほうですよ。
PATHとかは必ずしもきる必要はないですし。(ていうかEclipseなどを使っていると
コンパイラやクラスパス(ビルドパス)はEclipse上で設定するから
最近はいちいち設定するほうが少ないと思いますよ)
これを生業としているのかは存じませんが、これで音をあげていると
後々もちませんよ。
ご協力ありがとうございます。
このままでは後々もたないかもしれません。家庭にも悪影響が出始めてきました。これを生業にはしていないのがせめてもの救いです。

No.1
- 回答日時:
PATHは関係ありません。
PATHに「c:\j2sdk1.4.2\bin」と設定するのは、コマンドプロンプトで
c:\javasrc>javac HelloServlet.java
と打ったときに、"javac"というプログラムを見つけるためです。
c:\j2sdk1.4.2\binにPATHが通っているので、c:\j2sdk1.4.2\bin\javac.exeが見つかり、コンパイルができるわけです。PATHがないと「javacって何よ?」となります。
パッケージ javax.servlet は存在しません。
となるのはPATHではなくCLASSPATHの問題です。
質問者さんのプログラムは
import javax.servlet.*;
のようにjavax.servletパッケージを使用しているのに、それがどんなパッケージなのかをjavacに伝えていないからです。
CLASSPATHをキーワードにもう一度調べてみましょう。
参考URL:http://java-house.jp/ml/archive/j-h-b/021880.html
ありがとうございます。
システム環境変数を変更していたら症状が悪化しました。
コンパイルが出来なくなり下記のメッセージが出るようになりました。
基に戻しても治らないようです。
c:\javasrc>javac HelloServlet.java
'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
ユーザー変数は
path
c:\j2sdk1.4.2\bin
システム環境変数は
CATALINA_HOME
C:\Program Files\Apache Software Foundation\Tomcat 5.0
JAVA_HOME
C:\Program Files\Java\jdk1.6.0_15
環境設定はなんでこんなに難しいのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java jdk17.06のインストーラーが起動しない 1 2023/03/27 21:58
- IT・エンジニアリング プログラマの仕事内容 4 2022/08/13 00:34
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 15:14
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
.jarファイルの中身って書き換...
-
IIS環境でJAVAを使用したい
-
javaでコンパイルが成功しませ...
-
javaが文字コードの影響でコン...
-
Strutsのエラー?それともサー...
-
eclipseの構文エラーについて
-
eclipseの設定のJREとコンパイ...
-
warファイルを展開するとタイム...
-
TOMCAT_HOMEって?
-
コンパイルができないのですが...
-
Borland 5.5の環境設定について
-
javaの簡単なソースがコンパイ...
-
eclipseについて
-
Classファイル → Javaソース...
-
サクラエディタでjavaのプログ...
-
jadによるclassファイルの逆コ...
-
classファイルを元に戻す
-
java:一括コンパイル後、実行...
-
Jakarta POI のHSSFでのフッタ...
-
VB.net2010で開発しています。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.jarファイルの中身って書き換...
-
javaが文字コードの影響でコン...
-
javax.servlet は存在しません...
-
IIS環境でJAVAを使用したい
-
eclipseの構文エラーについて
-
コンパイルができないのですが...
-
TOMCAT_HOMEって?
-
サクラエディタでjavaのプログ...
-
jadによるclassファイルの逆コ...
-
日本語対応 逆コンパイラについて
-
「識別子がクラス名でも名前空...
-
exlipseでデバックエラーが発生...
-
Javaのコンパイル結果が表示さ...
-
Eclipse3.5EEでJavaのコンパイ...
-
Javaについて教えてね。
-
同一パッケージ内の継承について
-
javaの簡単なソースがコンパイ...
-
MFCアプリでCPropertySheetのサ...
-
Strutsのエラー?それともサー...
-
LaTeXでのアンダーバーの入力
おすすめ情報