I am getting noclassdeffounderror after deploying the jar with changes to a certain class file.
코드가 의존 클래스 파일이있는 경우이 발생하고,이 컴파일시에 존재하지만 런타임 (see this answer)에서 찾을 수 없습니다.
While deploying i Just dragged the .class file from the eclipse work space into a pre existing jar file. does that matter?
예. 중요합니다. 올바른 패키지 폴더에 클래스 파일을 다시 넣으십시오. 예를 들어 패키지 com.foo
의 클래스는 jar 파일 내의 com/foo
폴더에 있어야합니다. 변경된 버전을 jar 파일로 드래그했을 때 다른 버전으로 옮길 수 있습니다.
Does the jdk version in which the jar file is compiled matter because i am running on jre 1.7 in eclipse but my deployment environment is of jre 1.6 ?
jar 파일 자체는 압축 파일, 그래서 아니, 당신이 jar 파일의 내용을 압축하는 데 사용 된 자바의 버전 중요하지 않습니다.
그러나 기존의 jar 파일에서 하나의 클래스를 다시 컴파일 한 경우 은으로 jar 파일의 다른 클래스를 컴파일하는 데 사용 된 Java 버전과 관계가 있습니다. 동반자 수업과 양립 할 수 없다.
하지만 weblogic 12c 구성을 사용하여 동일한 서버에 하나의 jar 파일을 올바르게 배포했습니다. 하지만 weblogic 11g을 사용하여 배포하면이 사실을 알게됩니다. –
두 서버 모두 동일한 버전의 Java를 실행하고 있습니까? –
예, 당신은 그것을 정확하게 분석 JDK 1.7 + 웹 로직 12C = 완벽하게 작동 JDK 1.6 + 웹 로직 11g = 예외 java.lang.NoClassDefFoundError가 : java.lang.ClassLoader의에서 COM/델/gmfs/프레임 워크/JMS/QUtil .defineClass1 (네이티브 메소드) at java.lang.ClassLoader.defineClassCond (ClassLoader.java:631) at java.lang.ClassLoader.defineClass (ClassLoader.java : 615) at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:141) at weblogic.utils.classloaders.GenericClassLoader.defineClass (GenericClassLoader.java:328) –