dポイントプレゼントキャンペーン実施中!

JAVAの超初心者です。

1.サーブレットのコンパイルができない。
高橋麻奈著の「やさしいJAVA」第6版を終了し、同「活用編」に進んでいます。活用編のレッスン6のサーブレットに入り、付録CのTOMCATをインストールしましたが、レッスン6の最初のサーブレットプログラムSample1がコンパイルできません。
それまでのコンパイルはc:\yjsample\01で行っています。ここにプログラムを保管しています。上記のSample1もここに保管しているのですが、javacでコンパイル掛けても何も起きません。ただし、クラスファイル(.class)はできます。
TOMCATインストール後の今現在のCLASSPATHは以下の通りです。
① C:\Program Files\Java\jdk-10.0.1\db\lib\derby.jar
② C:\Apache Software Foundation\Tomcat 8.5\lib\servlet-api.jar
③ .

上記1のderby.jar はなかったです。(たぶんトムキャットのバージョンの違いか?)

そもそもコンパイルをc:\yjsample\01でするのがおかしいのか。

2.付録Cのとおりフォルダを作りました。
C:\Apache Software Foundation\Tomcat 8.5\webapps\YJKSample06\WEB-INF\classes

それでサーブレットはどこに入れるのか。本ではコンパイルした後にできるクラスファイルを所定の場所に入れるようなことでしたがよくわかりません。

WEBサーバーは起動しています。(Apache Tomcat/8.5.32)

宜しくご教授ください。

質問者からの補足コメント

  • うーん・・・

    故意にコマンドの綴りを間違えてコンパイルしてもやはり何も起きなくてすぐに終わってしまいます。コンパイルされていないと思いますが、これはPATHとがPATHCLASSの設定がおかしいのでしょうか。それともプログラムを入れている場所がおかしい?。
    サーブレットの手前までの学習・コンパイルはうまくいっていたのですが。

      補足日時:2018/08/15 10:42
  • サーブレット以前のソースのコンパイルと実行
    PATHはC:\Program files\Java\jdk-10.0.1\bin
    コンパイルはソースの保管してあるディレクトリでjavac Sample1.java
    実行はJava Sample1です。
    ソースのサンプルです。
    class Sample2{
    public static void main(String[]args) throws IOException
    以下略

    サーブレットでのコンパイルと実行
    PATHはc:\Program files\Java\jdk-10.0.1\db\lib\derby.jar;
    c:\Apache Software Foundation\Tomcat 8.5\lib\servlet-api.jar;.
    コンパイルはソースの保管してあるディレクトリでjavac Sample1.java
    としています。

      補足日時:2018/08/17 16:05

A 回答 (3件)

う~ん、もうちょっと具体的にならないですかね。



本持ってないのでなんとも言えませんが、javacの直打なんでしょうか?
-d や -sourthpath も毎回打つのですか?

コマンドラインからコンパイルするなら、初心者に向けの本ならビルドツ―ル無しで
バッチを組んでやらせるのでは? もしそうならバッチのソースや
あなたのやった具体的な操作は?

webアプリのソースは正しく配置されていますか?
パッケ―ジ名に対応したディレクトリはちゃんと配置出来てますか?

とにかく具体的な話が何もないのでアドバイスのしようが有りません。
また、コンパイルにtomcatの稼働は無関係です。
    • good
    • 0

>故意にコマンドの綴りを間違えてコンパイルしても


>やはり何も起きなくてすぐに終わってしまいます。

コマンドラインで何を入力しても
「操作可能なプログラムまたはバッチファイルとして認識されていません」
というメッセージさえ出ないという状況なんでしょうか?

もしそうならJavaとは全く無関係だと思いますが・・・
    • good
    • 0
この回答へのお礼

ありがとうございます。状況としてはc:\yjsample\01にソースプログラム(サーブレットとそれ以外)を一緒に入れてます。サーブレットでないソースをjavacでコンパイルすると、故意に間違えたらエラーになります。これは完全に機能しています。なので、サーブレットだけがコンパイルできないし無視されるようです。これはCLASSPATHがおかしいのか。そもそもTomcatのインストールがうまくいっているのか疑問になります。

お礼日時:2018/08/15 15:30

クラスファイルができていてコンパイル出来てないという状況が


理解出来ませんが、JavaDB に関してだけ。

JavaDB(Derby)のJDKへの付属はJava8までです。
Java10では別途ダウンD―ドが必要。

必要なら「apache Derby」で検索して
ダウンロードしましょう。
    • good
    • 0
この回答へのお礼

ありがとうございます。いまもc:\yjsample\01にサーブレットのソースを作って(.java)ここでjavacでコンパイルしたのですが何も起きなくてクラスファイル(.class)ができてしまいました。念のためにこのクラスファイルをC:\Apache Software Foundation\Tomcat 8.5\webapps\YJKSample06\WEB-INF\classesにコピーしてトムキャットのWEBサーバーから実行しようとしたらhttpステータス 404-NotFoundになります。(一応本に書いてある通りにしているつもりです)

お礼日時:2018/08/15 08:30

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