3

我运行以下命令从 HeadFirst Servlets 和 JSP 书中编译一个名为 BeerSelect.java 的 servlet。

D:\Apache Tomcat\apache-tomcat-5.5.36\apache-tomcat-5.5.36\webapps\Coffee>javac -classpath /common/lib servlet-api.jar:classes: -d classes src/com/example/网络/啤酒选择.java

我的 servlet-api.jar 位于D:\Apache Tomcat\apache-tomcat-5.5.36\apache-tomcat-5.5.36\common\lib

信息

javac: invalid flag: servlet-api.jar:classes:
Usage: javac <options> <source files> use -help for a list of possible options

无法理解如何修复此命令并编译 servlet。第一次做 servlet 的新手。

然后我将命令更改为

D:\Apache Tomcat\apache-tomcat-5.5.36\apache-tomcat-5.5.36\webapps\Coffee\WEB-IN
F\src\com\example\web>javac -classpath "D:\Apache Tomcat\apache-tomcat-5.5.36\ap
ache-tomcat-5.5.36\common\lib\servlet-api.jar";classes  BeerSelect.java

信息

BeerSelect.java:3: package com.example.model does not exist
import com.example.model.*;
^
BeerSelect.java:15: cannot find symbol
symbol  : class BeerExpert
location: class com.example.web.BeerSelect
        BeerExpert be = new BeerExpert();
        ^
BeerSelect.java:15: cannot find symbol
symbol  : class BeerExpert
location: class com.example.web.BeerSelect
        BeerExpert be = new BeerExpert();
                            ^
BeerSelect.java:32: cannot find symbol
symbol  : variable out
location: class com.example.web.BeerSelect
         out.println("<br>try: " + it.next());
         ^
4 errors

为什么找不到 com.example.model 包?

图片在此处输入图像描述

4

2 回答 2

3

看起来您的命令存在三个问题:多余的空格、Unix 样式的路径名和缺少额外的 Java 源文件。请尝试以下操作:

javac -classpath "D:\Apache Tomcat\apache-tomcat-5.5.36\apache-tomcat-5.5.36\common\lib\servlet-api.jar";classes -d classes src\com\example\web\*.java src\com\example\model\*.java

我删除了多余的空格,将 Unix 路径转换为 ​​Windows 路径,将类路径分隔符从 Unix 样式的“:”更改为 Windows 样式的“;”,并添加了您的其他 Java 源 - 将它们全部编译在一起应该可以解决您的前三个编译器错误。

至于最后一个编译器错误,这似乎是真正的源代码错误 - 尝试System.在该out.println("<br>try: " + it.next());行之前添加。(它也可以通过静态导入来解决,但这将是非常规的。)

于 2012-11-23T03:24:15.320 回答
0
D:\Apache Tomcat\apache-tomcat-5.5.36\apache-tomcat-5.5.36\webapps\Coffee>javac -classpath "D:\Apache Tomcat\apache-tomcat-5.5.36\apache-tomcat-5.5.36\common\lib\servlet-api.jar";"D:\Apache Tomcat\apache-tomcat-5.5.36\apache-tomcat-5.5.36\webapps\Coffee\WEB-INF\src" WEB-INF\src\com\example\web\BeerSelect.java  

此命令有效并编译 BeerSelect.java 类。

于 2012-11-26T00:10:17.707 回答