2011-09-27 10 views
0

실행 가능한 jar 파일을 만드는 데 문제가 있습니다. Intellij idea X artifacts로 jar 파일을 만듭니다. 나는이 항아리를 실행하려고 할 때, 그것은 나에게 오류 준 : 나는 패키지는이 클래스가 포함 된 확인클래스를 찾을 수 없습니다. javax.persistence.EntityNotFoundException

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) 

을하고 나는이 받는다는 의존성에 그것을 발견 :

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

나는 경우 체크 인 IntelliJ 이 jar 파일을 실행 파일 jar 파일에 추가하면 발견되었습니다. 그러니 문제가있는 사람이라면 누구 한테 아이디어가 있습니까?

답변

0

실제로이 클래스는 hibernate-jpa-2.0-api에 포함됩니다.

클래스 경로 문제 일 수 있습니다. 항아리에 필요한 jar 라이브러리를 포함하고 있습니까? 런타임에 다른 응용 프로그램이 jar 파일을 액세스 할 수 있습니까? 이 질문에 대한 답은 유용 할 것입니다. Classpath including JAR within a JAR

+0

예 1) 나는 메이븐 사이트를 확인했습니다 : http://search.maven.org/#search%7Cga%7C4%7Cfc%3Ajavax.persistence.EntityNotFoundException 2)이 패키지의 압축을 풉니 다. –

+0

사용법 ** org.hibernate : hibernate-annotations : 3.3.1.GA ** 사용법 ** org.hibernate : 최대 절전 모드 - 공유 주석 : 3.2.0. 최종 ** –

+0

예 참조 할 수 있습니다. 그것은 내 IDE에서. 다음으로 Intellij가 만든 jar의 내용을 추출해 보았습니다. 그런 다음 org.hibernate.javax.persistence : hibernate-jpa-2.0-api : 1.0.1.Final ** jar 파일을 추출했습니다. 나는 그 내용을 찾아보고이 수업을 찾았다. –

0

다음을 추가하십시오 : javaee-api-5.0-2.jar을 프로젝트에 추가하십시오.

+0

도움이 되셨습니까? –

0

JPA 라이브러리는 Oracle의 별도 외부 다운로드 파일입니다. 별도로 다운로드 받아 로컬 Maven 저장소에 설치해야 할 수도 있습니다.

또한 종속성 XML에 버전을 지정해야합니다.

+0

예 이런 방식으로했습니다. 부모 pom.xml에 지정한 버전. –

관련 문제