Dynamic Web Project中jar的ClassNotFoundException

时间:2013-03-03 09:54:10

标签: java jar

我创建了一个我想在动态Web项目中使用的JPA项目。

我从这个JPA项目中创建了一个jar,并将其添加到动态webproject的lib文件夹中。然后我将其添加到动态Web项目的构建路径中,并在“Order and Export”选项卡中勾选它。

第一个问题:我使用这些选项正常导出到jar创建了jar文件;

enter image description here

这些是好的还是我必须添加一些东西。

第二个问题:在我将这个jar添加到buildpath之后,我在这个jar中使用了一个类的实例,我可以将它添加到import中,并且知道类,所以我没有看到任何错误。

当我尝试运行我使用该类的jsp和servlet时,我的apache中出现了一个带有java.lang.ClassNotfoundEception的 java.lang.NoClassDefFoundError 错误在我使用该课程的行。因此,由于某种原因,他没有在运行时找到该课程。

我尝试用不同的选项一遍又一遍地制作罐子。我尝试以不同的方式导入我需要的类(ctrl-T),但我只看到一个类。

我唯一觉得奇怪的是导入的方式。在我的JPA项目中,我有一个包结构,如:

be.JPA.project6

在我的动态Web项目中,我有一个类似的包结构:

be.project6

当我看到导入时,我看到:be.JPA.project6.data.classname

我希望有一个不同的结构,所以他知道他需要在“正常”的包结构之外搜索。但是对于“ctrl-T”,我只能看到这个类

我不想引用其他项目,但是像jar一样使用它。

我目前没有任何线索,所以任何建议都会受到欢迎。

1 个答案:

答案 0 :(得分:1)

构建路径是:构建路径。用于构建应用程序的路径。

webapp的运行时类路径由WEB-INF / class目录和WEB-INF/lib中的jar集组成。

从动态Web项目的构建路径中删除jar。只需将其放入WebContent/WEB-INF/lib目录即可。 Eclipse将自动将此目录中的所有jar添加到构建路径,并将它们放在已部署的Web应用程序的WEB-INF/lib目录中,以便它们也是运行时类路径的一部分。