将Tomcat的jar/lib目录添加到Mac OS X上的Eclipse类路径中

14

我有一个项目需要一些Tomcat库才能正确运行。我已经安装了Tomcat(在Mac上),这只是一个将文件夹放到某个地方的过程。我最初通过将所需的jar文件添加为项目的外部jar来解决问题,但这样会影响到项目的.classpath,我不能允许这种情况发生,因为这些更改会被跟踪在我们的源代码控制中。

我尝试将tomcat/lib目录作为classpath变量添加到eclipse中,但这并没有解决问题。

当Tomcat服务器启动时,我收到ClassNotFoundException: HttpServletRequest的错误。

还有其他方法可以添加Tomcat库目录,而不修改项目的classpath吗?


1
你不能将任何JAR添加到项目的构建路径中,否则会改变.classpath文件。但是运行时是另一回事。无论如何,这正是类变量旨在解决的问题;你所说的“那不能解决问题”具体指什么? - E-Riz
向 Eclipse 菜单添加新的 "classpath 变量" 没有效果。代码仍然显示在缺少 Tomcat 代码引用下的红色错误,并且从 Eclipse 中启动 Tomcat 服务器时出现上述错误。结果相同。 - helion3
更多细节会有所帮助,例如您所做的步骤的逐步描述,甚至像下面一些答案中的一些屏幕截图。我已经多次使用Classpath变量来解决这种问题,所以我怀疑您只是缺少关于使用它们的某些东西。您尝试过阅读有关它们的帮助吗? - E-Riz
我可能漏掉了什么。我进入eclipse -> preferences -> java -> build path -> classpath variables。我添加了一个名为tomcat_libs的新变量,将其指向tomcat lib目录。我猜这还不足以告诉eclipse包含那些JAR文件,因为没有任何变化。我只能通过在项目中特别包含这些JAR文件来解决问题。 - helion3
1
创建一个类路径变量只是工作的一半,然后您需要在项目的构建路径中使用它(们),并且可能还需要在运行应用程序时使用的启动配置中使用它(们)。正如我所说,如果不触及.classpath文件,就无法向项目的构建类路径添加任何内容,这是Eclipse存储项目编译时类路径组成的方式。 - E-Riz
显示剩余3条评论
5个回答

28
您可以安装Webtools插件(Eclipse for JavaEE Developers默认安装),然后您将获得Tomcat运行支持。然后,您可以向项目添加“Tomcat Runtime”,它将自动包括在Tomcat上运行的web应用程序可用的所有Tomcat jar。
步骤如下:
  1. 窗口 > 首选项 > 服务器 > 运行环境
  2. 添加..
  3. 选择Tomcat版本
  4. 浏览到Tomcat安装目录
  5. 右键单击您的项目>属性
  6. 选择Java Build Path
  7. 添加库...> Server Runtime> 选择您创建的运行时
此过程还将修改您的.classpath文件,但它会以易于与其他开发人员共享的方式进行。
图片请见链接: https://istack.dev59.com/FUliu.webp 和 https://istack.dev59.com/NtRiH.webp

它可以工作,但是我想知道为什么在运行时设置类路径无法生效。是Tomcat覆盖或忽略了类路径吗? - Hola Soy Edu Feliz Navidad

1
也许你可以创建一个用户库,其中包括tomcat/lib中的jar文件,然后按照以下步骤将用户库添加到你的Java项目中:
构建路径 > 配置构建路径 > 库 > 添加库 > 添加用户库

1
这个可以运行,但会修改项目类路径,而我必须避免。添加一个条目:<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/TOMCAT_LIBS"/>。 - helion3

0

我使用在http://www.eclipsetotale.com/tomcatPlugin.html找到的sysdeo tomcat插件。您也可以通过转到帮助-> Eclipse Marketplace->搜索sysdeo来安装它。

它的作用是在选项中添加一个名为tomcat的菜单项,允许您将项目添加到tomcat类路径并将tomcat库添加到项目预编译中。

这里是一些截图。

启动和停止tomcat变得更加容易: enter image description here

以及您可以将库添加到类路径(以及更多内容)的位置

enter image description here


Eclipse似乎不允许我安装这个,也许它已经不再受支持了?至少过去一个月它的安装次数为0。 - helion3
我从未从市场安装过它,但你可以尝试直接从网站下载并手动安装。 - ug_
手动安装了这个插件,按照您的截图建议,将tomcat lib目录添加到classpath字段中。然而,Eclipse仍然显示javax.servlet.http.HttpServletRequest包的红色下划线,并且当我通过Eclipse启动tomcat服务器时,仍然会看到ClassNotFoundException:HttpServletRequest。 - helion3

0
我在使用Subversion与Windows用户时遇到了这个问题好几次。Tomcat目录中会有servlet-api.jar文件。将其复制并粘贴到你的Eclipse项目中,右键点击并添加到构建路径。
现在你不想提交classpath。那么,在提交时只需取消选择.classpath文件即可。

-1

基本上我使用的是Windows,不太清楚其他操作系统,但你可以在Eclipse中右键单击项目,然后选择“构建路径”,从中导入(类似于这样的)服务器(Tomcat)lib文件,其中你安装了服务器并放置了所有库文件,如果需要全部导入。


我不确定你指的是哪个“构建路径”菜单选项,但我不能将它们添加为外部JAR、用户库等,因为这些操作都会改变.classpath文件。 - helion3
1
请按照以下步骤操作: Build Path > Configure Build Path > Libraries > Add External jars,找到您安装服务器的位置,例如我安装在 C:,对于服务器库,我有这个文件夹的路径 C:\server\tomcat-7.0.39\lib,然后选择 servlet-api.jarjsp-api 等类似文件。 - Mohsin AR
那个方法是我最初所做的,但它不能成为长期解决方案,因为它会更改项目中的类路径文件,这将显示在版本控制提交中。我无法提交该文件(但也不能忽略它,因为它已经被跟踪在版本控制中)。 - helion3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接