Как создать совместимость между двумя сторонами, работающими на разных версиях JDK

StackOverflow https://stackoverflow.com/questions/3240822

Вопрос

Мой проект построен в 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)
        ...
.

















Решение : Вы можете попытаться восстановить приложение вашей третьей стороны с JDK 1.4, если он не вызывает методы, введенные в 1.6 (и 1.5).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top