在另一个问题中(Linux 上的最小 Java 安装,无需 GUI)我找到了一些有关 OpenJDK 无头安装的信息,但我需要 Oracle Java 8 的信息。
我需要 Oracle Java,因为我使用 ARM 架构 (Raspberry Pi 2) 来运行 Minecraft Spigot 服务器,并且多次指出 ARM 版本的 OpenJDK 缺乏关键的优化来提供合适的性能
我想要版本 8,因为 Spigot 还建议将此版本用于任何与 Minecraft 相关的目的;无论如何,OpenJDK 还没有版本 8
我希望它是无头的,因为我在控制台模式下运行我的 Raspberry 服务器,并卸载了所有 GUI/桌面环境组件,以节省存储空间和性能。
我当前的系统是基于 Debian 的 Raspbian Wheezy(内核版本 3.18.;发布于 2015-05-05)。它预装了 Oracle Java 8,但当我删除 GUI 和桌面组件(以及各种其他无用的软件)以制作最小平台时,它被删除了。
然后我尝试使用以下命令重新安装它:
# apt-get install oracle-java8-jdk
它为我提供了一个巨大的要安装的软件包列表,正如我能够识别的那样,其中主要包含字体、图标、语言文件和 x11(x-server-realted)库,所有这些该死的 GUI 工作人员都是我绝对喜欢的不需要 - 并且要求 >200 MB 的存储空间。
最后我的问题是:有吗?任何如何在没有这些 GUI 组件的情况下安装 Oracle Java 运行时环境?也许我应该手动挑选出不需要的包裹 - 但我怎么知道哪些是真的需要 Java 在控制台上运行,或者如果我错过依赖项列表中的包,可能会导致不稳定,但是功能上就不需要Java了?
所需软件包的列表(也许它们会有所帮助):
fontconfig fontconfig-config hicolor-icon-theme libatk1.0-0 libatk1.0-data libcairo2 libdatrie1 libfontconfig1 libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-common libgraphite2-2.0.0 libgtk2.0-0 libgtk2.0- bin libgtk2.0-common libharfbuzz0a libjasper1 libjpeg8 libpango-1.0-0 libpango1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpangox-1.0-0 libpangoxft-1.0-0 libpixman-1-0 libthai-data libthai0 libtiff4 libx11 -6 libx11-data libxau6 libxcb-render0 libxcb-shm0 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxrandr2 libxrender1 libxtst6 oracle-java8-jdk ttf-dejavu-core x11-common
答案1
完整的 JDK(无论是 oracle-java8-jdk 包,还是直接来自 Oracle 的 JDK)包含 VisualVM 分析器。它以图形模式运行,这解释了这些依赖性。
您写了有关存储空间的文章,>200MB 对您来说太大了。而且您也没有说明为什么您需要完整的 JDK,而不仅仅是 JRE,JRE 完全足以运行用 Java 编写的软件。
所以,我建议使用这个:
https://github.com/serverfarmer/sf-java8
setup.sh
文件在 /opt 目录中安装来自 Oracle 的纯 JRE。还有它:
- 创建一个符号链接 /opt/java,这将始终导致当前的 Java 安装
- 在/etc/environment文件中添加适当的JAVA_HOME和JAVA_OPTS环境变量,这样很多基于Java的软件(例如Tomcat,JBoss EAP)将能够自动找到它,而无需任何手动配置