0

我是 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
4

3 回答 3

2

的拼写"servlet-api.jar"错误。

于 2013-06-27T08:15:00.890 回答
0

在 Windows 中使用 '\' 进行目录导航。['/' 用于 linux]。所以试试这个:

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
于 2013-06-03T06:27:57.930 回答
0

以这种方式使用您的目录导航

"D:/Program Files (x86)/apache-tomcat-7.0.39/lib/servelt-api.jar"
于 2013-06-03T06:12:58.107 回答