Класс не найден javax.persistence.EntityNotFoundException - PullRequest
0 голосов
/ 27 сентября 2011

У меня проблема с созданием исполняемого файла JAR. Я создал файл jar с помощью Intellij идея X артефактов. Но когда я попытался выполнить этот 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 голосов
/ 27 сентября 2011

Действительно, hibernate-jpa-2.0-api содержит этот класс.

Это может быть проблема с classpath. Включаете ли вы необходимые библиотеки jar в свой jar? Может ли ваше приложение обращаться к другим файлам, предоставленным приложением, во время выполнения? Вы можете найти ответы на этот вопрос полезными: Classpath включая JAR в JAR

0 голосов
/ 27 сентября 2011

JPA-библиотеки - это отдельная внешняя загрузка из Oracle.Вам может потребоваться загрузить их отдельно и установить в локальное хранилище Maven.

Вы также должны указать версию в своем XML-файле зависимости.

0 голосов
/ 27 сентября 2011

Попробуйте добавить: javaee-api-5.0-2.jar в ваш проект.

...