我是 Java EE 的新手。我正在按照 Head First Servlets and JSP 一书的步骤创建一个简单的 Web 应用程序。
我用 Java 写了一个简单的 servlet。现在,我打算编译它并将类放到开发环境中。我没有使用任何内置工具,只是在 Windows 中使用 javac 命令。servlet 的路径是 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
系统返回一个无效标志错误给我(我使用的是非英文操作系统。以下信息是我自己翻译成英文的):
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不存在”错误,这真的很困惑,因为我在这里包含了servlet-api.jar!
更正的代码在这里:
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