Как создать совместимость между двумя сторонами, работающими на разных версиях JDK
-
15-09-2020 - |
Вопрос
Мой проект построен в 1.4.2 JDK. Теперь он собирается взаимодействовать с третьей стороной банку, построить в JDK 1.6
Я получаю проблему совместимости при использовании классов клиентов. Можно ли решить его без модернизации моего JDK до 1.6 или восстановление третьей сторонней банки в 1.4.2
Решение
Вы не можете запустить класс скомпилирован с JDK 1.6 на предыдущем JDK 1.4, потому что вы получите исключение 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) ....