我是Java EE的新手。我正在按照Head First Servlets和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! < / p>
更正的代码在此处:
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
答案 0 :(得分:2)
"servlet-api.jar"
的拼写错误。
答案 1 :(得分:0)
以这种方式使用您的目录导航
"D:/Program Files (x86)/apache-tomcat-7.0.39/lib/servelt-api.jar"
答案 2 :(得分: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