openjdk-6-jre,openjdk-6-jre-headless,openjdk-6-jre-lib之间的区别

时间:2014-06-18 08:37:39

标签: java openjdk

我无法理解Java JRE的一些基础知识。

我需要在嵌入式系统中运行Java代码,为此我需要在Linux内核中安装最小的Java Runtime Environment,也就是说,执行Java二进制文件所需的最小包。我认为只有JVM才能做到这一点(JRE包是必要的,我在这里错了吗?)

问题是,在查看Debian存储库时,我并不完全理解包openjdk-6-jreopenjdk-6-jre-headlessopenjdk-6-jre-lib之间的差异。 Java程序只能与前者一起运行吗?或者,他们三个需要吗?

这是一个问题,因为它们之间的大小(MB)存在很大差异。

2 个答案:

答案 0 :(得分:43)

你是正确的,因为你需要一个jre包来运行任何java应用程序。

由于您说您在嵌入式平台上运行,我认为您要运行的Java应用程序没有gui。在这种情况下,您可以使用openjdk-6-jre-headless。这在openjdk-6-jre-headless package page here“最小Java运行时 - 执行非GUI Java程序所需”中进行了解释。

正如您所见from the debian package details pageopenjdk-6-jre-headless取决于openjdk-6-jre-lib(以及其他软件包),因此将以任何方式安装。

但是,如果要运行的java应用程序有gui,则需要openjdk-6-jre而不是openjdk-6-jre-headless

编辑:固定链接。

编辑:再次固定链接

答案 1 :(得分:6)

有两个不同的包可用的主要原因是包的依赖性。 openjdk-6-jre还取决于:

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

与之前的评论[{1}}相反,取决于openjdk-6-jre,使后者真正只是一个子集。