2012-04-28 85 views
2

我想从命令提示符编译一个非常基本的servlet,但它始终不成功,编译器告诉我下面的:如何从命令提示符编译servlet?

error: package javax.servlet does not exist. 

我用Google搜索解决方案,我发现我需要包括servlet.jar库到我的路径。 我相信我做到了。 我坚信,在我的电脑这些库中的位置是:

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

和我的路径末端(相关部分)如下:

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

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

+0

你为什么不使用tomcat? – Ketan 2012-04-28 13:07:26

+1

路径和类路径是不同的东西。 – 2012-04-28 13:07:53

回答

8

类路径而不是路径......你不需要它作为一个环境现状变量。 您可以使用选项-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:​​\阿帕奇-tomcat-7.0.23 \ lib \ servlet-api.jar“是一个jar文件,而不是它可能是从你的问题你的机器上的一个目录) 对于命令行编译在Windows操作系统上它是有环境变量JAVA_HOME正确设置和JDK在PATH bin目录是个好主意。

我不过建议得到通过/在servlet开发的IDE搞清楚如何只用JDK从命令行做到这一点之前写编译执行部署。 Java Servlets不是独立的可执行类,但需要部署到例如tomcat以进行测试/使用。

+0

+1用于避免CLASSPATH环境变量,这可能会导致意外的行为。尽管如此,为了完整起见,最好包括一个例子。 – 2012-04-28 13:43:50

+0

同意一个例子,但我在十年左右没有在java中看到过一个windows路径。我会尽力更新。 – esej 2012-04-28 14:25:14

+0

但它会是一个类路径的例子;唯一的区别是在Windows中的分隔符''',在真实操作系统中''''。并用空格引用路径,尽管'\'也可能工作 - 我也不记得Windows的东西 - 这是真棒:D – 2012-04-28 14:26:51

1

首页复印从以下路径

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

和现在沿着路径

C:\java\jdk1.6\bin;

希望它粘贴到Java软件的bin文件夹中的servlet-api.jar文件文件你可以成功编译你的servlet程序。

1

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

enter image description here

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

enter image description here

然后编译并运行该servlet。

相关问题