我在理解Java JRE的一些基础知识时遇到了困难。
我需要在嵌入式系统中运行Java代码,为此,我需要在Linux内核中安装一个最小的Java Runtime Environment,也就是说,执行Java二进制文件所需的最小包。我认为仅使用JVM是不可能做到这一点的( JRE包是必需的,我说错了吗?)
问题是,在查看Debian存储库时,我不太理解openjdk-6-jre
、openjdk-6-jre-headless
和openjdk-6-jre-lib
包之间的区别。Java程序是否只能与前者一起运行?或者,这三个是必需的吗?
这是一个问题,因为它们之间的大小(MB)有很大差异。
发布于 2014-06-18 16:50:22
您是正确的,您将需要一个JRE包来运行任何Java应用程序。
既然您说您正在嵌入式平台上运行,那么我假设您想要运行的Java应用程序没有GUI。在这种情况下,您可以使用openjdk-6-jre-headless
。这在openjdk-6-jre-headless package page here“最小的Java运行时--执行非GUI程序所需的时间”中进行了解释。
正如您所看到的from the debian package details page,openjdk-6-jre-headless
依赖于openjdk-6-jre-lib
(以及其他软件包),因此无论采用哪种方式都可以安装它。
但是,如果要运行的Java应用程序具有图形用户界面,则需要使用openjdk-6-jre
而不是openjdk-6-jre-headless
发布于 2016-02-22 20:27:53
有两个不同的包可用的主要原因是包的依赖性。openjdk-6-jre
还将依赖于:
libasound2, libgif4, libjpeg62, libpng12-0, libpulse0 , libx11-6, libxext6, libxi6, libxrender1, libxtst6 and zlib1g
与前面的评论相反,openjdk-6-jre
依赖于openjdk-6-jre-headless
,使后者实际上只是一个子集。
https://stackoverflow.com/questions/24280872
复制相似问题