2011-04-08 76 views
0

我正在尝试编译导入某些servlet库的简单类。由于我没有将tomcat目录添加到类路径中,因此让系统知道在何处查找tomcat/lib文件夹中找到的servlet库的最佳实践方法是什么?Java编译提供了有关servlet库的错误

目前,该系统只是给象这样的错误:

ackage javax.servlet does not exist 
[javac] import javax.servlet.ServletException; 
+0

你的环境是什么?蚀? NetBeans的? Maven的?蚂蚁? CLI与纯javac? – musiKk 2011-04-08 20:49:13

+0

@musiKk我在Ubuntu中使用Eclipse。但是,这不应该独立于IDE? – Genadinik 2011-04-08 20:52:32

+1

它与您用于编译的工具有关。如果您使用IDE进行编译,那么您必须将它设置在您的IDE中,以便它能正常工作。无论如何,这只是将jar(servlet.jar)添加到classpath中,这是IDE添加到其中的方式。 – SJuan76 2011-04-08 20:57:19

回答

2

如果您希望只使用了Java提供的工具,你将不得不看的JavaDoc javac工具并添加所需的手工加入班级路径。

除非这是一个学习练习,并且您正试图做到这一点,否则我会建议您研究Maven,Ant或您最喜欢的IDE,因为它们将在您未来的职业生涯中更加有用。

+0

是的,我刚开始试图理解如何在正确的方式下做到这一点,然后才能通过IDE轻松完成此任务。 – Genadinik 2011-04-08 23:26:32

+0

如果您正在使用IDE,则以正确的方式对其进行配置。 – musiKk 2011-04-09 14:10:38

0

这取决于你的IDE。每个好的Java IDE都提供了一种指定额外类路径的方法。

如果您使用Maven作为构建工具,最好的方法是为这些库指定一个“提供的”作用域。他们将在编译时使用,但在最后的战争不是包装:

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>javax.servlet</artifactId> 
    <version>2.1</version> 
    <scope>provided</scope> 
</dependency> 
+0

我不使用Maven,并且我试图弄清楚这一点,而不包括IDE。 – Genadinik 2011-04-08 20:54:04

1

如果您在使用ecplise,你可以从其他文件夹添加到application server runtime library您的构建路径,也可以add jar到Java构建路径配置。

1

所以你实际上在问如何使用javac来编译一个servlet类?您只需要将通用Java方法中的依赖关系置于编译时类路径中即可。这与Servlet或其他东西没有特别的关系。

您可以使用javac的参数-cp-classpath作为参数。它接受用于打包根文件夹和JAR文件的冒号分隔字符串(相对)路径。

javac -cp .:/path/to/Tomcat/lib/servlet-api.jar com/example/MyServlet.java 

在classpath中.代表当前目录。在Windows中,路径分隔符就是分号。

1

我在eclipse中遇到了同样的问题。

为了解决这个问题,

右键单击在项目资源管理您的Web项目 - >属性 - >项目构面 - >按ALT + R - >选择服务器你想要的 - >应用 - >确定和完成。

注: 我使用Eclipse Helios。

你应该已经在eclipse中添加了服务器。 Installing Apache Tomcat Server in eclipse