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


72

我在理解Java JRE的一些基础方面遇到了麻烦。

我需要在嵌入式系统中运行Java代码,为此,我需要在Linux内核中安装最小的Java运行时环境,即执行Java二进制文件所需的最小程序包。我认为仅使用JVM是不可能的(JRE包是必需的,在这里我错了吗?)

事情是,看着Debian仓库的时候我也不太明白软件包之间的差异openjdk-6-jreopenjdk-6-jre-headlessopenjdk-6-jre-lib。Java程序将仅与前者一起运行吗?还是需要其中三个?

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

Answers:


78

您是正确的,因为您将需要一个JRE包来运行任何Java应用程序。

由于您说的是在嵌入式平台上运行,因此我假设要运行的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


非常感谢你。实际上,我必须为此平台编译一个linux内核2.6 ...,但我不确定是否可以在构建过程中合并jre(任何版本,如果可能,请使用最小的版本)。你知道这有可能吗?
豪尔赫2014年

2
如果您的意思是在内核中包含jre,那么据我所知这是不可能的-jre位于用户空间而不是内核中。
伍德汉姆2014年

链接报告错误:“指定了两个或多个软件包(openjdk-6-jre-headless压缩)”。
穆罕默德·侯赛因巴希奇(MuhamedHuseinbašić)

openjdk-11-jdk-headlessopenjdk-11-jdkLinux(ubuntu 18.10)之间的区别是什么,在哪里可以找到相关信息?
christianbueno.18年1


13

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

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

与前面的评论所openjdk-6-jre依赖的相反openjdk-6-jre-headless,后者实际上只是一个子集。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.