我正在尝试编译导入某些servlet库的简单类。由于我没有将tomcat目录添加到类路径中,因此让系统知道在何处查找tomcat/lib文件夹中找到的servlet库的最佳实践方法是什么?Java编译提供了有关servlet库的错误
目前,该系统只是给象这样的错误:
ackage javax.servlet does not exist
[javac] import javax.servlet.ServletException;
我正在尝试编译导入某些servlet库的简单类。由于我没有将tomcat目录添加到类路径中,因此让系统知道在何处查找tomcat/lib文件夹中找到的servlet库的最佳实践方法是什么?Java编译提供了有关servlet库的错误
目前,该系统只是给象这样的错误:
ackage javax.servlet does not exist
[javac] import javax.servlet.ServletException;
这取决于你的IDE。每个好的Java IDE都提供了一种指定额外类路径的方法。
如果您使用Maven作为构建工具,最好的方法是为这些库指定一个“提供的”作用域。他们将在编译时使用,但在最后的战争不是包装:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
我不使用Maven,并且我试图弄清楚这一点,而不包括IDE。 – Genadinik 2011-04-08 20:54:04
如果您在使用ecplise,你可以从其他文件夹添加到application server runtime library
您的构建路径,也可以add jar
到Java构建路径配置。
所以你实际上在问如何使用javac
来编译一个servlet类?您只需要将通用Java方法中的依赖关系置于编译时类路径中即可。这与Servlet或其他东西没有特别的关系。
您可以使用javac
的参数-cp
或-classpath
作为参数。它接受用于打包根文件夹和JAR文件的冒号分隔字符串(相对)路径。
javac -cp .:/path/to/Tomcat/lib/servlet-api.jar com/example/MyServlet.java
在classpath中.
代表当前目录。在Windows中,路径分隔符就是分号。
我在eclipse中遇到了同样的问题。
为了解决这个问题,
右键单击在项目资源管理您的Web项目 - >属性 - >项目构面 - >按ALT + R - >选择服务器你想要的 - >应用 - >确定和完成。
注: 我使用Eclipse Helios。
你应该已经在eclipse中添加了服务器。 Installing Apache Tomcat Server in eclipse
你的环境是什么?蚀? NetBeans的? Maven的?蚂蚁? CLI与纯javac? – musiKk 2011-04-08 20:49:13
@musiKk我在Ubuntu中使用Eclipse。但是,这不应该独立于IDE? – Genadinik 2011-04-08 20:52:32
它与您用于编译的工具有关。如果您使用IDE进行编译,那么您必须将它设置在您的IDE中,以便它能正常工作。无论如何,这只是将jar(servlet.jar)添加到classpath中,这是IDE添加到其中的方式。 – SJuan76 2011-04-08 20:57:19