java.lang.NoClassDefFoundError:javax / persistence / Persistence

时间:2010-05-17 16:29:50

标签: java persistence

我正在使用Netbeans 6.8并构建简单的Maven Web应用程序项目。

为persist Entity创建实体和主文件[也创建持久单元]并使用EclipsLink。

但是当我运行主文件时出现此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/Persistence
        at Main.main(Main.java:34)
Caused by: java.lang.ClassNotFoundException: javax.persistence.Persistence
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        ... 1 more

在netbeans项目窗口和我的项目库文件夹中只添加此包:

javaee-web-api-6.0.jar [提供]

请帮我解决此错误

感谢

5 个答案:

答案 0 :(得分:14)

点击Here下载hibernate-jpa-2.0-api-1.0.1.Final.jar并将其放入项目库,您的应用程序将正常运行。祝你好运:)

答案 1 :(得分:1)

我遇到了同样的问题,我通过将依赖项更改为以下内容来解决了这个问题:

    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>javax.persistence</artifactId>
        <version>2.2.1</version>
    </dependency>
    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>org.eclipse.persistence.jpa</artifactId>
        <version>2.7.3</version>
    </dependency>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>7.0</version>
        <scope>provided</scope>
    </dependency>

答案 2 :(得分:0)

pom.xml中,您需要为JPA库添加依赖项。

答案 3 :(得分:0)

只是让你偶然发现这一点。另一个问题可能是您有一个项目导入另一个项目,父项目是应该拥有所有库的项目。

答案 4 :(得分:0)

用于Maven快速入门工件:-

当类路径中没有hibernate-jpa-2.0-api jar时,通常会出现此问题,因此请首先在您的类路径中添加此jar。如果您仍然感到兴奋,请转到 C:\ Users \(系统用户名)\。m2 \ repository \ org \ hibernate;删除文件夹javax。之后,再次从pom.xml下载jar即可。

对于网络应用程序:-

首先确保下载了hibernate-jpa-2.0-api jar,并且它在您的构建路径中可用。之后右键单击项目->构建路径->配置构建路径->部署组装->添加-> Java构建路径条目->选择可用的jar(hibernate-jpa- 2.0-api)--->下一个--->完成。