2012-03-28 2 views
0

У меня есть клиентская банка, созданная с использованием java 1.6 и используемая переименование и другие новые функции java, мое приложение построено на java 1.4. Я хочу использовать эту клиентскую банку в своем приложении.Ошибка совместимости с версией Java

Можно ли это сделать?

+1

Почему вы все еще строите приложения для Java 1.4? – paradigmatic

+1

«мое приложение построено на java 1.4»: вам по какой-то причине нужно, чтобы он был совместимым с версией 1.4 или вам нужно было работать на 1.4 JRE? Поскольку совместимый источник 1.4 обычно является совместимым с 1.6 источником. ;) (Если, например, вы не используете новые ключевые слова, например «перечисление» в качестве имени переменной). – user1252434

ответ

2

Обычно: нет, вы не можете.

может использовать библиотеку/перезапись байтового кода, например Retroweaver, чтобы переписать библиотеку на 1.4 совместимую. Также есть Retrotranslator, который делает то же самое и другие инструменты. В последний раз, когда я использовал Retroweaver, сразу после выхода Java 5, я не могу говорить о текущем состоянии.

Но это будет в лучшем случае. Использование древней версии Java - это ответ в лучшем случае, и вы должны как можно скорее перейти на как минимум на Java 5.

0

Вы не можете перейти на JDK1.6?

еще нужно добавить rt.jar из JDK1.6 в свой класс путь, но это может привести к конфликтам для классов, общих для JDK1.4 и JDK1.6

+0

Нет, я не могу обновить свое приложение до версии 1.6. Я хочу найти другую работу, если она есть? –

0

Ваш клиент банку будет необходимо JRE 1.6. Что касается вашего приложения, в идеале вы должны иметь возможность запускать его на JRE 1.6, поскольку Java является обратной совместимостью.

Итак, вам нужно перенести приложение на JRE 6, перекомпилировать, а затем вы сможете использовать клиентскую банку.

Однако модернизация и портирование имеют свою сложность и последствия.

0

вы можете попробовать сделать банку доступной через интерфейс веб-сервиса и запустить ее как 1.6; должен работать, но я не скажу вам, что это будет легко.

0

Для запуска кода библиотеки вам, очевидно, потребуется JRE 1.6 или выше. Из-за обратной совместимости 1.4 часть вашего приложения должна работать на той же JRE. Однако, как вы взаимодействуете между вашим 1.6 lib и вашим приложением 1.4, это еще один вопрос.

Ваше приложение не может использовать перечисления или другие функции 1.5 напрямую. Если все, что вы напрямую получаете в своей библиотеке, совместимо с 1.4, оно должно работать, я думаю. Например. если ваше приложение определяет интерфейс, и библиотека обеспечивает реализацию этого. (Например, типичный шаблон плагина.) Если интерфейс вашей библиотеки требует, чтобы приложение использовало 1,5 функции, например. передать значение enum в качестве параметра метода, которое, очевидно, не будет работать с вашим существующим байтовым кодом.

Смежные вопросы