다른 JDK 버전에서 작업하는 두 당사자 간의 호환성을 만드는 방법
-
15-09-2020 - |
문제
내 프로젝트는 1.4.2 JDK에서 빌드됩니다. 이제는 제 3 자 항아리와 상호 작용할 것입니다. JDK 1.6
클라이언트 클래스를 사용하는 동안 호환성 문제가 발생합니다. JDK를 1.6으로 업그레이드하거나 1.4.2
에서 제 3 자 항아리를 재구성하지 않고도 해결할 수 있습니까?해결책
이전 JDK 1.4에서는 JDK 1.6에서 컴파일 된 클래스를 실행할 수 없으므로 java.lang.UnsupportedClassVersionError
예외가 발생합니다.이것은 Java가 호환되지 않기 때문에 역 호환 가능합니다 (사양 ).
JDK 1.4.2.19 및 JDK 1.6.0.23을 설치하고 샘플 응용 프로그램을 썼습니다.
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } }.
JDK 1.6.0.23 :
../1.6.0.23/bin/javac HelloWorld.java
.
JDK 1.4.2.19로 실행 :
../1.4.2.19/bin/java HelloWorld
.
출력 :
Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld (Unsupported major.minor version 50.0) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:539) ....
솔루션 : 1.6 (및 1.5)에 도입 된 방법을 호출하지 않으면 JDK 1.4로 제 3 자 응용 프로그램을 재구성하려고 시도 할 수 있습니다.
제휴하지 않습니다 StackOverflow