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

时间:2012-04-28 13:05:06

标签: 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\

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

3 个答案:

答案 0 :(得分:9)

classpath not path ...并且您不需要它作为环境变量。 您可以使用选项-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 OS上的命令行编译,最好在PATH中正确设置环境变量JAVA_HOME和JDK的bin目录。

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

答案 1 :(得分:1)

首先从以下路径

复制servlet-api.jar文件

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

按照路径

将其粘贴到java软件的bin文件夹中

C:\java\jdk1.6\bin;

希望您现在可以成功编译您的servlet程序。

答案 2 :(得分:1)

1.您可以将javax.servlet.jar复制到jdk1.6 \ lib文件夹中。 2.您可以转到Control Panel \ System \ Advanced System Properties \ Environment Variables

enter image description here

在CLASSPATH变量中输入jar的位置,如下所示:

enter image description here

然后编译并运行servlet。