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

Jor*_*rge 55 java openjdk

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

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

问题是,在查看Debian存储库时,我不太了解这些包之间的差异openjdk-6-jre,openjdk-6-jre-headless并且openjdk-6-jre-lib.Java程序只能与前者一起运行吗?或者,他们三个需要吗?

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

Woo*_*ham 59

你是正确的,因为你需要一个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

编辑:固定链接.

编辑:再次固定链接

  • 如果你的意思是在内核中包含一个jre,那么就我所知,这是不可能的 - jre存在于用户空间而不是内核. (2认同)

Dan*_*iel 8

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

libasound2, libgif4, libjpeg62, libpng12-0, libpulse0 , libx11-6, libxext6, libxi6, libxrender1, libxtst6 and zlib1g
Run Code Online (Sandbox Code Playgroud)

而且违背了以往的评论openjdk-6-jre依赖openjdk-6-jre-headless,使后者实际上只是一个子集.