4

我想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\

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

4

3 回答 3

10

类路径不是路径......你不需要它作为环境变量。您可以使用选项 -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 和 bin 目录是个好主意PATH中的JDK。

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

于 2012-04-28T13:08:23.640 回答
1

首先从以下路径复制 servlet-api.jar 文件

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

并按照路径粘贴到java软件的bin文件夹中

C:\java\jdk1.6\bin;

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

于 2013-06-23T04:31:19.017 回答
1

1.您可以将您的javax.servlet.jar复制到jdk1.6\lib文件夹中。2.你可以去控制面板\系统\高级系统属性\环境变量

在此处输入图像描述

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

在此处输入图像描述

然后编译并运行 servlet。

于 2014-01-12T14:19:05.240 回答