web-dev-qa-db-ja.com

openjdk-6-jre、openjdk-6-jre-headless、openjdk-6-jre-libの違い

Java JREの基本の一部を理解できません。

組み込みシステムでJavaコードを実行する必要があり、そのためにはLinuxカーネルにインストールされた最小限のJavaランタイム環境、つまりJavaの実行に必要な最小限のパッケージが必要ですバイナリ。 JVMでのみこれを行うことはできないと思います(JREパッケージが必要です、私はここで間違っていますか?)

問題は、Debianリポジトリを見ると、パッケージopenjdk-6-jreopenjdk-6-jre-headless、およびopenjdk-6-jre-libの違いがよくわからないということです。 Javaプログラムは前者でのみ実行されますか?または、それらの3つが必要ですか?

サイズ(MB)には大きな違いがあるため、これは問題です。

51
Jorge

Javaアプリケーションを実行するにはjreパッケージが必要になるという点で正しいです。

組み込みプラットフォームで実行していると言うので、実行したい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が必要になります

編集:リンクを修正しました。

編集:リンクを再度修正

51
Woodham

2つの異なるパッケージを使用できる主な理由は、パッケージの依存関係です。 openjdk-6-jreは以下にも依存します:

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

前のコメントとは異なり、openjdk-6-jreopenjdk-6-jre-headlessに依存しているため、後者は実際にはサブセットにすぎません。

8
Daniel