找不到类javax.persistence.EntityNotFoundException

时间:2011-09-27 15:11:37

标签: java classnotfoundexception

我在创建可执行jar文件时遇到问题。我通过Intellij idea X工件创建jar文件。但是当我尝试执行这个jar时,它给了我一个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/EntityNotFoundException
Caused by: java.lang.ClassNotFoundException: javax.persistence.EntityNotFoundException
    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:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

我检查哪个包包含这个类,我在这个maven依赖项中找到了它:

<dependency>
    <groupId>org.hibernate.javax.persistence</groupId>
    <artifactId>hibernate-jpa-2.0-api</artifactId>
</dependency>

我检查Intellij是否将此jar添加到我的可执行jar中,然后在那里找到它。那么有人知道问题出在哪里吗?

3 个答案:

答案 0 :(得分:0)

尝试将javaee-api-5.0-2.jar添加到您的项目中。

答案 1 :(得分:0)

确实,hibernate-jpa-2.0-api包含此类。

这可能是类路径问题。你是否在jar中包含了所需的jar库?您的应用可以在运行时访问其他应用程序提供的jar吗?您可能会发现此问题的答案很有用:Classpath including JAR within a JAR

答案 2 :(得分:0)

JPA库是Oracle独立的外部下载。您可能需要单独下载它们并将它们安装到您当地的Maven仓库中。

您还应该在依赖关系XML中指定一个版本。