Подтвердить что ты не робот

Разница между openjdk-6-jre, openjdk-6-jre-headless, openjdk-6-jre-lib

У меня возникли проблемы с пониманием некоторых основ Java JRE.

Мне нужно запустить Java-код во встроенной системе, и для этого мне нужна минимальная среда выполнения Java Runtime Environment, установленная в ядре Linux, то есть минимальный пакет, необходимый для выполнения двоичных файлов Java. Я думаю, что это невозможно сделать только с JVM (пакет JRE необходим, я здесь не прав?)

Дело в том, что при просмотре репозиториев Debian я не совсем понимаю различия между пакетами openjdk-6-jre, openjdk-6-jre-headless и openjdk-6-jre-lib. Будут ли программы Java работать только с первым? или, три из них нужны?

Это проблема, поскольку между ними существует большая разница в размере (МБ).

4b9b3361

Ответ 1

Вы правы в том, что вам понадобится пакет jre для запуска любого java-приложения.

Поскольку вы говорите, что работаете на встроенной платформе, я предполагаю, что приложение java, которое вы хотите запустить, не имеет gui. В этом случае вы будете в порядке с openjdk-6-jre-headless. Это объясняется на странице openjdk-6-jre-headless здесь "Минимальное время выполнения Java - требуется для выполнения не-GUI-программ Java".

Как вы можете видеть на странице сведений о пакете debian, openjdk-6-jre-headless зависит от openjdk-6-jre-lib (среди других пакетов), так что установить в любом случае.

Если, однако, приложение java, которое вы хотите запустить, имеет gui, вам понадобится openjdk-6-jre вместо openjdk-6-jre-headless

Изменить: Исправлены ссылки.

Ответ 2

Основной причиной наличия двух различных пакетов являются зависимости пакетов. openjdk-6-jre также будет зависеть от:

libasound2, libgif4, libjpeg62, libpng12-0, libpulse0 , libx11-6, libxext6, libxi6, libxrender1, libxtst6 and zlib1g

И вопреки предыдущему комментарию openjdk-6-jre зависит от openjdk-6-jre-headless, делая последнее действительно просто подмножеством.