web-dev-qa-db-fra.com

Différence entre openjdk-6-jre, openjdk-6-jre-headless, openjdk-6-jre-lib

J'ai du mal à comprendre certaines notions de base de Java JRE.

J'ai besoin d'exécuter Java code dans un système embarqué et pour cela j'ai besoin d'un minimum Java Runtime Environment installé dans un noyau Linux, c'est-à-dire le package minimum nécessaire pour exécuter Java binaires. Je pense qu'il n'est pas possible de le faire uniquement avec une JVM (le package JRE est nécessaire, je me trompe ici?)

Le truc, c'est qu'en regardant les dépôts Debian, je ne comprends pas très bien les différences entre les paquets openjdk-6-jre, openjdk-6-jre-headless et openjdk-6-jre-lib. Les programmes Java fonctionneront-ils uniquement avec le premier? Ou, les trois sont-ils nécessaires?

Il s'agit d'un problème car il existe une grande différence de taille (Mo) entre eux.

51
Jorge

Vous avez raison, vous aurez besoin d'un package jre pour exécuter n'importe quelle application Java.

Puisque vous dites que vous exécutez sur une plate-forme intégrée, je suppose que l'application Java que vous souhaitez exécuter n'a pas de GUI. Dans ce cas, vous serez bien avec openjdk-6-jre-headless. Ceci est expliqué sur la page du paquet openjdk-6-jre-headless ici "Minimal Java runtime - nécessaire pour exécuter non GUI Java = programmes ".

Comme vous pouvez le voir sur la page des détails du paquet debian , openjdk-6-jre-headless dépend de openjdk-6-jre-lib (parmi d'autres packages), donc cela sera installé de toute façon.

Si toutefois l’application Java que vous souhaitez exécuter possède une interface graphique, vous aurez besoin de openjdk-6-jre au lieu de openjdk-6-jre-headless

Modifier: liens fixes.

Modifier: Liens fixes à nouveau

51
Woodham

La principale raison pour laquelle deux packages distincts sont disponibles sont les dépendances des packages. openjdk-6-jre dépendra également de:

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

Et contrairement au commentaire précédent openjdk-6-jre dépend de openjdk-6-jre-headless, faisant de ce dernier un véritable sous-ensemble.

8
Daniel