ClassNotFoundException,在 Eclipse 构建路径中使用用户库时

ClassNotFoundException when using User Libraries in Eclipse build path

提问人:user646584 提问时间:8/10/2011 最后编辑:BalusCuser646584 更新时间:10/4/2023 访问量:34043

问:

我正在使用 Eclipse 3.7 (STS) 和在 IDE 中运行的 Tomcat 7。我创建了一个新的动态 Web 项目,并将一个 JSP 文件添加到 Web 内容根文件夹。我可以毫无问题地运行 Tomcat 并从 Eclipse 中访问 JSP。

我从用户库中向项目添加了一些第三方 JAR(我没有使用 maven 或自动依赖项管理)。在JSP中,我从项目的JAR文件中引用了一个类,我可以毫无问题地编译它,但是当我在Tomcat上部署时,JSP会抛出ClassNotFoundException。显然,Tomcat 无法从我的库设置中找到 JAR。我尝试为 Tomcat Server 创建运行方式配置,并将类路径设置为与项目的类路径设置匹配,但我仍然遇到相同的 classnotfound 问题。

我可以通过手动将所有项目 JAR 复制到 WEB-INF/lib 目录来解决这个问题,以便 Web 应用程序可以找到所有依赖项,但这很荒谬,我不认为这是解决方案,因为这是维护的噩梦。

我错过了什么吗?

eclipse tomcat classnotfoundexception 构建路径

评论


答:

4赞 Femi 8/10/2011 #1

您需要将 jar 文件复制到 WEB-INF/lib 文件夹:这是它们应该位于的位置。

Eclipse 应该为您提供生成包含所有依赖项的 WAR 文件的选项: 我已经有一段时间没有使用 Web 工具了,但无论如何,所有依赖项都必须在 WEB-INF/lib 中,否则类加载器将无法找到它们。

评论

1赞 user646584 8/10/2011
我在 Eclipse STS 中找不到动态 Web 项目的任何 WAR 设置,但我确切地知道你在说什么,因为这是我使用 Eclipse Galileo 多年后所期望的。
99赞 BalusC 8/10/2011 #2

在项目的属性中,转到“部署程序集”。在那里添加您手动添加为用户库的构建路径条目。它最终会出现在已部署的 WAR 中。/WEB-INF/lib

enter image description here

另请参阅:

评论

9赞 user646584 8/10/2011
救命者!这奏效了,我知道一定有一个简单的方法,耶稣基督,现在我可以睡一觉了,谢谢一百万!
1赞 Bizmarck 12/5/2012
以防万一您使用的是较旧的 eclipse,在版本 3.4.2 中,项目属性中的选项名称是“Java EE Module Dependencies”
0赞 BalusC 12/5/2012
@bizmark:没错。另请参阅 stackoverflow.com/questions/3511479/...
2赞 Boris 7/5/2013
此信息应包含在有关动态项目的每个教程中
0赞 Shiv 8/16/2013
@BalusC-请看看我的问题 stackoverflow.com/questions/18249117/...