我无法理解Java JRE的一些基础知识。
我需要在嵌入式系统中运行Java代码,为此我需要在Linux内核中安装最小的Java Runtime Environment,也就是说,执行Java二进制文件所需的最小包。我认为只有JVM才能做到这一点(JRE包是必要的,我在这里错了吗?)
问题是,在查看Debian存储库时,我并不完全理解包openjdk-6-jre
,openjdk-6-jre-headless
和openjdk-6-jre-lib
之间的差异。 Java程序只能与前者一起运行吗?或者,他们三个需要吗?
这是一个问题,因为它们之间的大小(MB)存在很大差异。
答案 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 page,openjdk-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
,使后者真正只是一个子集。