java - 如何从命令提示符编译 servlet?

标签 java servlets compiler-construction classpath

我想从命令提示符编译一个非常基本的 servlet,但它总是不成功,编译器告诉我以下内容:

 error: package javax.servlet does not exist.

我在谷歌上搜索了解决方案,发现我需要将 servlet.jar 库包含到我的 PATH 中。 我相信我做到了。 我坚信这些库在我的计算机中的位置是:

C:\apache-tomcat-7.0.23\lib\servlet-api.jar\ 

我的 PATH 的结尾(相关部分)如下:

%JAVA_HOME%\bin;C:\apache-tomcat-7.0.23\lib\servlet-api.jar\

对我来说,它看起来还可以,但显然不是。谁能告诉我可能是什么问题?

最佳答案

类路径不是路径...您不需要它作为环境变量。 您可以使用选项 -cp 或 -classpath 为 javac 设置类路径(也可以使用其他几种方法)。 javac 使用环境变量 CLASSPATH 来查找类,这可能很有用,也可能是难以追踪的问题的来源。

编译使用库(即来自标准 JavaSE 之外的类)的 java 文件的示例是:

javac -classpath C:\apache-tomcat-7.0.23\lib\servlet-api.jar MyTestServlet.java

如果您的环境变量 CLASSPATH 包含您需要的库,您可能想这样做:

javac -classpath %CLASSPATH%;C:\apache-tomcat-7.0.23\lib\servlet-api.jar MyTestServlet.java

(请注意,我无法访问 Windows 机器,因此没有测试上面语法的特殊部分) (另请注意,在此示例中,“C:\apache-tomcat-7.0.23\lib\servlet-api.jar”是一个 jar 文件,而不是可能来自您机器上的问题的目录) 对于Windows 操作系统上的命令行编译,正确设置环境变量JAVA_HOME 和PATH 中JDK 的bin 目录是个好主意。

不过,我建议先通过/在 IDE 中编写-编译-执行-部署以进行 servlet 开发,然后再弄清楚如何仅使用命令行中的 JDK 来完成它。 Java Servlets 不是独立的可执行类,但需要部署到例如 tomcat 中才能进行测试/使用。

关于java - 如何从命令提示符编译 servlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10363742/

相关文章:

xml - 如何在 java ee web.xml 中正确映射 servlet

compiler-construction - 为编译器设计中间表示

compiler-construction - 如何检查一个方法总是返回一个值

java - 如何使用 Apache XMLBeans 从 Xsd-Schema 读取 Xsd-Annotations?

java - 更新 JPA 中的一对一关系

java - 在单独的线程上进行网络操作和解析

java - Servlet 映射与 mvc 资源 spring 相关的问题

Java Servlet - 在包含的 servlet 中设置或更改 cookie

c++ - 如何将 "fat"库转换为 "non-fat"库?

java - 无法在 JFrame 上绘画