2009-09-23 2 views
3

Наш рабочий стол только на рабочем месте использует JDK 1.4.2 до сих пор (также 1.4.2 JRE поставляется вместе с продуктом). Я пытаюсь убедить руководство позволить нам перейти на более новую версию, чтобы получить производительность, API/возможности и преимущества для разработчиков.Рекомендуется обновление источника Java от 1.4.2 до 1.6.0_10? (пропуск 1.5)

С 1,5 дошел до перехода EOL, я думаю об обновлении до 1.6.0_10 напрямую (обновление 10 выбрано так, как это важно). С точки зрения кода, все ошибки компиляции - это просто имена переменных, которые называются enum, которые я переименовал, и продукт работает нормально.

Вопрос заключается

  • рекомендуется ли это обновление/штраф, т.е. пропуская 1.5? есть ли уловки
  • Если да, то я должен обновить до 1.6u10 или самый последний доступный 1.6?

Благодаря

+0

Это внутреннее приложение? Если вы используете 1,6 конкретных функций, тогда вам потребуются ваши пользователи, чтобы Java 1.6 – tster

+0

Они отправляют JRE с продуктом. –

+0

Вы использовали метод BigDecimal toString() для печати значения BigDecimals? Тогда ПОСМОТРЕТЬ! (это также присутствует в Java 5). – MetroidFan2002

ответ

5

Я бы сказал, если вы собираетесь сделать обновление затем пойти на то, что последнее обновление. На самом деле вы можете получить некоторую бесплатную прибыль с 1,6, я знаю, что некоторые улучшения JVM были сделаны с 1.4.

0

Это Java, это не грязный язык сценариев, который изменяет его синтаксис, его грамматику и ее API каждый младший выпуск.

Обратная совместимость является одной из основных особенностей Java.

+1

Хотя в целом это правда, Swing был худшим нарушителем с точки зрения обратной совместимости. – Yishai

2

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

+0

+1 для сбалансированного ответа. –

0

Просто сделал это (Swing приложение) от 1,3 до 1,6 :)

Works (согласно тестированию UAT) совершенно нормально (за исключением некоторых изменений, необходимых для AWT UI). PTE показывает некоторое снижение потребления памяти (не так много), а серверная сторона работает несколько быстрее (я склонен думать, что это связано с улучшением GC и строкой intern()).

В любом случае, вы должны сделать это из-за EOL и 1.6 не сильно отличается от 1.5. Поэтому я бы сказал 1.6 определенно.

+0

Приложение Swing, над которым я работал, столкнулся с бесконечным циклом событий, когда он был перенесен с 1.3 на 1.4 - подсистема фокуса была, по-видимому, полностью переписана, и приложение зависело от определенной последовательности для определенных событий, которые не были гарантированы. –

+0

Правильно, мы также должны были внести изменения в обработчик фокуса. Я считаю, что это был один из самых больших, во всех усилиях по миграции. Второй по величине - «внести все изменения в пользовательский интерфейс только через поток обработчика событий». Работал (более или менее) в 1.3, повесил в 1.6. Но изменения довольно просты, и, кроме того, выбор «1.5 против 1.6», а не «пребывание на 1.3 или переход к 1.6» –

0

Я бы рекомендовал перейти на Java 6 более 1,5. Поскольку вам уже нужно будет протестировать ваше приложение против новой JRE независимо от выбранной вами версии, вы также можете воспользоваться этой возможностью. Вместо того, чтобы увеличивать ваше обновление дважды (один раз за 1,5 и более за 1,6) и дважды требовать тестовый цикл, вы можете получить его в стороне один раз. Пока вы на нем, обновление до самой последней доступной версии будет прекрасно.

3

В целом, Java довольно хорош в обратном отношении.

В случае необходимости выяснить, что изменилось на платформе Java с 1.4 до 6, ниже приведен список изменений, которые вс перечислила для каждого выпуска:

0

это обновление, рекомендуется ли/штраф, т.е. пропуск 1.5? Есть ли уловки

Я думаю, что это хорошая идея пропустить 1,5 и перейти непосредственно к 1.6, и нет абсолютно никакого требования, которое заставляет вас пройти через 1.5.

Если да, то должен ли я обновить до 1.6u10 или самый последний доступный 1.6?

Я бы выбрал последнюю версию. На самом деле, я думаю, что 1.6u16 - это текущий основной релиз.

+1

Чтобы добавить к этому, всегда отправляйтесь на последнюю версию данной версии только из-за безопасности и исправление ошибок. – Powerlord

0

Недавно мы обновили наше приложение Swing (много перетаскивания) от 1.4 до 1.6, чтобы получить параллельные возможности, и мы не видели ни одной проблемы, которая возникает из-за самой Java. Мы также хотим пойти в Nimbus Look and Feel, так как внешний вид Windows не выглядит и не похож на Windows.

Функция убийцы, которую вы должны показать своему боссу, заключается в том, как приложить к приложению с помощью jvisualvm, чтобы исследовать запущенную программу в случае возникновения проблем.

0

У свинг-приложений могут быть проблемы с версией. У нас были проблемы с каждым обновлением (от 1.3 до 1.4 и 1.4 до 1.5, и мы встали на ногу в 1.6 - и больше вопросов). Однако нет причин тратить время на 1,5. Идите прямо к 1.6, последней версии, вы не будете экономить время, зайдя к 1.5, вы просто потратите кучу времени на тестирование 1.5, а затем сделаете это снова в какой-то момент в будущем для 1.6. Гораздо экономичнее перейти на 1.6.

Многие незначительные исправления исправляют проблемы, поэтому придерживаться 1.6_u10 является просто приглашение. u10 был большим обновлением (в отличие от его названия), насколько это касается Swing, и несколько выпусков после этого рассмотрели проблемы, которые появились после того, как u10 был выпущен.