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.
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
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.