Разница между пакеты OpenJDK-6-JRE, то пакеты OpenJDK-6-JRE и безголовых, пакеты OpenJDK-6-JRE и-Либ


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

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

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

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

2 31

2 ответа:

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

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

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

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

правка: исправленные ссылки.

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

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

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