К каким сюрпризам я должен подготовиться, если я перейду с Sun JDK на OpenJDK? - PullRequest
36 голосов
/ 10 февраля 2010

Если бы я переключился с Sun JDK на OpenJDK, к каким сюрпризам я должен подготовиться?

Что часто бывает не так и насколько это может быть сложно?

Конечно, у каждого приложения могут быть свои проблемы, но я ищу классов проблем, с которыми многие люди уже сталкивались при переключении JDK.

Ответы [ 7 ]

11 голосов
/ 10 февраля 2010

Вряд ли что-то пойдет не так с OpenJDK. На данный момент считается на 100% совместимым. Но я думаю, что хорошо знать, какие части нужно было переписать, и поэтому они не используют тот же код, что и SunJDK.

Запись в Википедии имеет хороший обзор этого:

По состоянию на май 2008 года единственной частью библиотеки классов, которая остается проприетарной и закрытой (4% на май 2007 года для OpenJDK 7 и менее 1% на май 2008 года и OpenJDK 6), является реализация SNMP .

С момента выпуска первого мая 2007 года Sun Microsystems с помощью сообщества выпустила в качестве бесплатного программного обеспечения с открытым исходным кодом или заменила бесплатными альтернативами с открытым исходным кодом почти весь обремененный код:

  • Весь код звукового движка, включая программный синтезатор, был выпущен как Open-source. Программный синтезатор с закрытым исходным кодом был заменен новым синтезатором, разработанным специально для OpenJDK, под названием Gervill,

  • Все классы криптографии, используемые в библиотеке классов, были выпущены как Open-source,

  • Код, который масштабирует и растеризует шрифты, был заменен на FreeType

  • Собственная система управления цветом заменена на LittleCMS. В JDK есть подключаемый слой, поэтому коммерческая версия может использовать старую систему управления цветом, а OpenJDK - LittleCMS.

  • Код растеризатора сглаживания графики был заменен рендерером Рыб с открытым исходным кодом, используемым в проекте phoneME. Этот код полностью функционален, но все еще нуждается в некоторых улучшениях производительности,

  • Плагин JavaScript был с открытым исходным кодом (сам движок JavaScript Rhino был с открытым исходным кодом).

3 голосов
/ 10 февраля 2010

Поскольку я знаю, что шрифты будут выглядеть искаженными, Sun пришлось удалить оригинальные из OpenJDK, поскольку они не являются "открытым исходным кодом", а JVM будет использовать некоторые значения по умолчанию, которые не так хороши ...

2 голосов
/ 10 февраля 2010

Поскольку OpenJDK - это проект Sun, основанный на исходном Java-источнике, я не ожидаю многих проблем. Единственная область, где что-то может сломаться, - это код, который пришлось заменить (потому что он не может быть выпущен по лицензии GPL) или изменения из-за новых функций (но они должны быть почти такими же, как в официальном JDK). 1001 *

1 голос
/ 18 ноября 2011

Апплеты OpenJDK (IcedTea) под linux являются ОСНОВНОЙ БОЛЕЙ . Я борюсь с удаленной отладкой части довольно ржавого кода уже пару часов. Официальная документация о том, как прикрепить апплет в браузере, у меня просто не работает. Там нет консоли Java по умолчанию, кстати. Я серьезно подумываю о репликации конфигурации апплета и использовании встроенной программы просмотра JDK вместо попытки отладки JVM, размещенной в браузере.

UPD : Я не совсем уверен, что OpenJDK не имеет самого плагина для браузера. Может быть, это недавно изменилось.

1 голос
/ 10 февраля 2010

Некоторые пользовательские интерфейсы не полностью совпадали (у металла были прокладки, которые были достаточно заметны) Обратите внимание, что это было 8 месяцев назад.

1 голос
/ 10 февраля 2010

Используйте сборку OpenJDK, известную как прохождение TCK, чтобы минимизировать неожиданности.

0 голосов
/ 13 января 2013

OpenJDK более безопасен, чем двоичные файлы Oracle, благодаря IcedTea.

...