Разница между 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 работать только с первым? или, три из них нужны?
Это проблема, поскольку между ними существует большая разница в размере (МБ).
Ответы
Ответ 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
, делая последнее действительно просто подмножеством.