未找到类javax.persistence.EntityNotFoundException

未找到类javax.persistence.EntityNotFoundException,java,classnotfoundexception,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.EntityNotFoundE

我在创建可执行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>

org.hibernate.javax.persistence
hibernate-jpa-2.0-api

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

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

事实上,
hibernate-jpa-2.0-api
包含此类


这可能是一个类路径问题。您是否在jar中包含所需的jar库?您的应用程序能否在运行时访问其他应用程序提供的JAR?您可能会发现这个问题的答案很有用:

JPA LIB是从Oracle单独外部下载的。您可能需要单独下载它们并将它们安装到本地Maven repo中


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

是的,我检查了,1)我通过解压缩这个包签入maven站点:>2)。我不使用org.hibernate:hibernate注解:3.3.1.GA I usage org.hibernate:hibernate commons注解:3.2.0。最后,我可以从IDE中引用它。接下来,我尝试提取Intellij为我构建的jar的内容,然后提取org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final jar文件。我浏览到it内容并找到了这个类。我创建了自己的EntityNotFoundException类,现在我有了相同的错误,但是对于另一个类,这个类现在是:org.springframework.context。ApplicationContext@pierretautou您正在生产什么样的可执行jar?它是否有带依赖项的嵌套jar(应用程序jar中的库jar)。如果是这样的话,看看我在这个答案中发布的相关问题,也看看相关问题中提到的其他工具。是的,我是这样做的。我在父pom.xml中指定的版本。