eclipse 引入java文件路径问题_java - Eclipse构建路径嵌套错误

在Eclipse中开发JSP/Servlet/Tomcat webapp时遇到构建路径错误,导致Http 500和ClassNotFoundException。问题在于源代码路径设置不正确。解决方案包括:删除并重新添加源文件夹,编辑构建路径排除嵌套的WEB-INF/classes,以及检查库设置。通过这些步骤可以解决Eclipse中的类路径问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java - Eclipse构建路径嵌套错误

我正在为我的班级开发一个简单的JSP / Servlet / Tomcat webapp。 教授要求我们使用与默认动态Web项目结构略有不同的文件夹结构。 他没有使用webcontent文件夹,而是希望我们在src / main / java和src / main / webapp下的所有源代码。

当我运行应用程序时,我的欢迎文件显示正常,但当我尝试访问我的servlet时,我得到:

Http 500 SEVERE: Allocate exception for servlet InitDb

抛出java.lang.ClassNotFoundException。 我很确定它是构建路径错误。 我在构建路径上有final / src,但是我收到了警告

"Cannot nest 'final/src/main/webapp/WEB-INF/classes' inside 'final/src'. To enable the nesting exclude 'main/' from 'final/src'

1acb1027a03aa9d80f3f2c58bbe616f3.png

我在部署程序集中有这个:

当我排除主要/警告消失,但它没有解决问题。 我很感激任何建议。 谢谢。

11个解决方案

283 votes

即使我创建了一个新项目,我也遇到了同样的问题。我在Eclipse中创建Java项目,然后对其进行mavenize,然后进入java构建路径属性,删除src/并添加src/main/java和src/test/java.当我运行Maven更新时,它曾用于给出嵌套路径错误。

然后我终于意识到 - 因为我之前没有看过那个条目 - 当我将它复制时,pom文件中有一条src行。 删除它后解决了。

acheron55 answered 2019-07-05T22:44:11Z

17 votes

我想对这个帖子提出一个非常少的回答。

由于版本控制和严格的目录结构原因,我无法遵循Acheron的回答(最佳答案)做类似于删除main/webapp/WEB-INF/classes并将Exclusion Pattern和main/webapp/WEB-INF/classes添加到构建路径。

实际上我已经和这个嵌套的构建路径问题进行了几个星期的斗争。 错误消息中暗示了问题的答案:

main/webapp/WEB-INF/classes

固定

在您的构建路径中,您需要通过单击Exclusion Pattern然后单击main/webapp/WEB-INF/classes来编辑您的main/webapp/WEB-INF/classes:

转到导航器,然后右键单击项目

构建路径

配置构建路径

来源(标签)

124152a702c62b7fadc20d4c1ce41b69.png

在那里你可以添加main/webapp/WEB-INF/classes作为Exclusion Pattern.然后它应该允许你将main/webapp/WEB-INF/classes添加到构建路径作为单独的源文件夹。

heez answered 2019-07-05T22:45:38Z

10 votes

试试这个:

从库选项卡:

Eclipse -> right click on project name in sidebar -> configure build path -> Libraries

删除您的Web应用程序库:

click on "Web App Libraries" -> click "remove"

将它们添加回来:

click "Add Library" -> click to highlight "Web App Libraries" -> click "next" -> confirm your desired project is the selected option -> click "Finish"

突出显示" Web App库":

urVnc.png

Sireesh Yarlagadda answered 2019-07-05T22:46:24Z

2 votes

您必须将源和构建输出所在的目标目录分开。 同样重要的是要注意,任何类文件都不能在源目录中结束。 这并不违反教授的建议 - 实际上他正在推广maven标准源结构./src/main/java和./src/main/webapp。 第二个应该举行例如。 必须的WEB-INF / web.xml文件,但你永远不会把实际的类放在那里。

您需要更改的是目标目录。 我建议使用相同的标准并选择名称" ./ target" 为了这。 所有构建的文件都将放在此处,将其打包将产生正确的可部署工件。 如果您稍后迁移到使用maven,它还将以脚本化,可重复的方式帮助您实现这一目标。

希望能解决你的问题。

Kristof Jozsa answered 2019-07-05T22:47:04Z

2 votes

我有同样的问题,上面的正确答案对我不起作用。 我做的解决方法是转到Build Path->Configure Build Path,在源选项卡下我删除了所有源(只有一个源)并从那里重新配置它们。 我最终从eclipse中删除了项目并再次导入maven项目以清除错误。

Hatem Jaber answered 2019-07-05T22:47:30Z

2 votes

在我的情况下,我在eclipse中有一个gradle自然项目,问题出现在src,其中指定了src/java:

sourceSets {

main {

java {

srcDir 'src'

}

}

}

这似乎适用于intelliJ,但看起来比eclipse不喜欢嵌套src,2243119297066304513,src/resources。在eclipse中我必须将它改为:

sourceSets {

main {

java {

srcDir 'src/main/java'

}

}

}

albciff answered 2019-07-05T22:48:02Z

1 votes

已接受的解决方案对我没有用,但我对项目设置进行了一些挖掘。

以下解决方案至少在我使用动态Web项目时为我修复了它:

右键单击项目然后单击属性。 (或在项目中输入alt)

在部署程序集删除和#34;秒#34;。

你应该能够添加src / main / java。 它还会自动将其添加到Deployment Assembly。

警告:如果您添加了src / test / java注释,它还会将其添加到Deployment Assembly。 一般来说,你不需要这个。 你可以删除它。

Chad answered 2019-07-05T22:49:02Z

0 votes

要使Eclipse编译器正常工作,您需要从源路径中删除final / src并添加final / src / main / java。 这也可以解决您的问题,因为现在构建目录不会在Java源文件夹中。

Sasha O answered 2019-07-05T22:49:29Z

0 votes

这开始让我陷入了一个用Eclipse修复故障的巨大漏洞,但是我刚刚从Eclipse中删除了该项目并重新导入它来修复它。

Carson answered 2019-07-05T22:49:55Z

0 votes

这是一个简单的解决方案:

右键单击项目>> 属性>> 建立路径;

在“源”选项卡中,选择所有源文件夹;

删除它们;

右键单击项目,Maven>> 更新项目。

abhijeet104 answered 2019-07-05T22:50:42Z

-3 votes

制作两个文件夹:final/src/来存储源java代码,和final/WebRoot/。

您不能将源和Webroot放在一起。 我想你可能会误解你的老师。

Jimmy Zhang answered 2019-07-05T22:51:15Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值