私はJava EEの初心者です。そして、『Head First Servlets and JSP』という本の手順に従って、単純な Web アプリケーションを作成しました。
Java で簡単なサーブレットを作成しました。今、それをコンパイルして、クラスを開発環境に置くことを計画しています。Windowsのjavacコマンドだけで、ビルドツールは使用していません。サーブレットのパスは、D:\Learning Exercises\HeadFirstSnJ_Demo1\src\com\example\web\BeerSelect.java です。そして、クラスファイルをディレクトリ D:\Program Files (x86)\apache-tomcat-7.0.39\webapps\HeadFirstSnJ_Demo1\WEB_INF\classes\com\example\web\ の下に置く予定です
本のコマンドは次のとおりです。
% cd MyProjects/beerV1
% javac -classpath /Users/bert/Applications2/tomcat/common/lib/servlet-api.jar:classes:. -d classes src/com/example/web/BeerSelect.java
Windowsでこれらのコマンドを実行しました:
D:\>cd D:\Learning Exercises\HeadFirstSnJ_Demo1\src\com\example\web
D:\Learning Exercises\HeadFirstSnJ_Demo1\src\com\example\web>javac -classpath D:/"Program Files (x86)"/apache-tomcat-7.0.39/lib/servelt-api.jar;-d D:/"Program Files (x86)"/apache-tomcat-7.0.39/webapps/HeadFirstSnJ_Demo1/WEB_INF/classes/com/example/web BeerSelect.java
システムから無効なフラグ エラーが返されます (英語以外の OS を使用しています。次の情報は自分で英語に翻訳したものです)。
javac: Invalid: D:/Program Files (x86)/apache-tomcat-7.0.39/webapps/HeadFirstSnJ_Demo1/WEB_INF/classes/com/example/web
Usage: javac <options> <source files>
-help to list all the valid options
なぜそれが起こったのですか?この javac -classpath -d コマンドの使い方は間違っていますか?
実は、「;」に何か問題があると思います。ここで「-d」の前に。「;」を置き換えると 空白があると、この無効なフラグ エラーは発生しませんが、代わりに「パッケージ javax.servlet が存在しません」というエラーが発生します。
修正されたコードは次のとおりです。
D:\Learning Exercises\HeadFirstSnJ_Demo1\src\com\example\web>javac -classpath "D:\Program Files (x86)\apache-tomcat-7.0.39\lib\servelt-api.jar" -d "D:\Program Files (x86)\apache-tomcat-7.0.39\webapps\HeadFirstSnJ_Demo1\WEB_INF\classes\com\example\web" BeerSelect.java