Java JREの基本の一部を理解できません。
組み込みシステムでJavaコードを実行する必要があり、そのためにはLinuxカーネルにインストールされた最小限のJavaランタイム環境、つまりJavaの実行に必要な最小限のパッケージが必要ですバイナリ。 JVMでのみこれを行うことはできないと思います(JREパッケージが必要です、私はここで間違っていますか?)
問題は、Debianリポジトリを見ると、パッケージopenjdk-6-jre
、openjdk-6-jre-headless
、およびopenjdk-6-jre-lib
の違いがよくわからないということです。 Javaプログラムは前者でのみ実行されますか?または、それらの3つが必要ですか?
サイズ(MB)には大きな違いがあるため、これは問題です。
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
が必要になります
編集:リンクを修正しました。
編集:リンクを再度修正
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
に依存しているため、後者は実際にはサブセットにすぎません。