servlets - Java 编译错误。 servlet-api.jar

标签 servlets java

我创建了简单的 Java Servlet:WelcomeServlet.java。

然后,我尝试通过以下方式编译此文件:

javac WelcomeServlet.java

结果我看到编译错误:

包 javax.servlet 不退出

我尝试通过 Google 找到此错误的解决方案。我找到了答案的第一部分:java编译器没有看到servlet-api.jar文件。

我知道,Apache Tomcat 的 lib 文件夹中包含 servlet-api.jar 文件。

所以,我有这个文件,但是我必须在哪里复制这个文件?

我尝试不同的文件夹:

echo %JAVA_HOME%
C:\Program Files\Java\jdk1.6.0_26

%PATH% 包含此行:C:\Program Files\Java\jdk1.6.0_26\bin

所以,我复制:
%JAVA_HOME%\bin
%JAVA_HOME%\lib
%JAVA_HOME%\jre\lib

结果是同样的错误。 只有在我将 servlet-api.jar 复制到目录中之后: %JAVA_HOME%\jre\lib\ext

编译完成成功。

我的问题:为什么?为什么我必须复制到文件夹 %JAVA_HOME%\jre\lib\ext ??

文档中描述了此时此刻?

还有其他问题,我们有一些官方文档或规范来描述 jdk 文件夹的文件夹结构?

最佳答案

运行 javac 时,您需要使用 -classpath 命令行选项来指定希望编译器搜索的一个或多个目录。编译器在 %JAVA_HOME%\jre\lib\ext 中找到您的 .jar 的原因是因为它默认搜索扩展目录。

这是针对 Java 1.5 的,但我相信它或多或少仍然是正确的:

http://docs.oracle.com/javase/1.5.0/docs/tooldocs/findingclasses.html

关于servlets - Java 编译错误。 servlet-api.jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8347157/

相关文章:

java - 将类类型传递给方法

java - Android,POST JSON 数组,php 调试

java - 将选定的对象从 JSP 发送到 Servlet

java - 从同一登录表单登录两种不同类型的最佳方法

java - 用于 chrome 中的 html5 视频的 Servlet 流式传输 mp4

java - Java 有 uudecoding 的标准机制吗?

java - 在 Jar 文件中运行类

java - 响应无法转换为 JSON

java - 设置流回浏览器的 Pdf 的文件名

java - 当托管在 GoDaddy 服务器上时,简单测试 Servlet 无法工作,为什么?