我是 Java EE 的新手。我按照 Head First Servlets and JSP 一书的步骤创建了一个简单的 Web 应用程序。
我用 Java 编写了一个简单的 servlet。现在,我计划编译它并将该类放入开发环境中。我没有使用任何内置工具,只是使用 Windows 中的 javac 命令。 Servlet 的路径为 D:\LearningExercises\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”前面。如果我替换“;”带有空格,不会出现此无效标志错误,而是出现“package javax.servlet does not exit”错误,这真的很困惑,因为我在这里包含了 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
最佳答案
“servlet-api.jar”
的拼写错误。
关于java - 操作 javac -d : invalid flag? 时出错 如果我更正它,则会出现另一个 package-not-found 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16890809/