来自 RHEL 的 JavaFX

Posted

技术标签:

【中文标题】来自 RHEL 的 JavaFX【英文标题】:JavaFX from RHEL 【发布时间】:2018-05-19 13:26:30 【问题描述】:

以前我在 Red Hat 提供的 Oracle Java SE 中使用 JavaFX 开发应用程序,但它似乎不再像 https://access.redhat.com/articles/3253281 那样提供。但是,来自 rhel-7-server-rpms 存储库的 OpenJDK 似乎没有附带 JavaFX。

除了从 Red Hat 提供的存储库之外安装软件包之外,还有更好的方法吗?我不想用自编译的 OpenJFX 二进制文件一一测试每个环境。

【问题讨论】:

【参考方案1】:

Oracle 提供您可以下载的 RPM:

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

那些 RPM 不在 YUM 存储库中,您只需将红帽框指向即可。

您可以下载 RPM 和 create your own rum repository,然后将您的自定义存储库添加到每台目标机器的 yum 存储库列表中,然后使用 yum 将 rpm 安装到您的机器上。您需要对此进行限制,以便我认为它不会完全向公众开放(以满足 Oracle Java 分发要求)。

如果您构建了自己的 Java SE 版本,其中包括来自 OpenJFX 源的 JavaFX(或者您可以为您的目标操作系统找到其他人构建的包),那么您可以在自己的存储库中以不受限制的方式托管它(或任何其他公共存储库),或者如果其他人已经将包放在那里,则从公共存储库中提取包。

如果您不需要存储库,并且可以将 rpms scp 到相关机器,那么您可以directly install the rpms on the machines 而无需设置自己的自定义存储库。

如果您将应用程序打包为self-contained application,那么应用程序安装包本身将包含 JRE,因此您无需担心在机器上单独安装它(也不会潜在地遇到这种情况用户安装了与您的代码不兼容或测试的运行时版本)。也许这是您的首选路径。

我不知道 RedHat 对 OpenJDK 发布和构建到其存储库的政策。如果他们将 JavaFX 包含在其存储库中的 OpenJDK 发行版中,或者为 OpenJFX 提供单独的包 similar to what Ubuntu do,那就太好了。也许他们可能会在他们的 OpenJDK 9 发行版中包含 JavaFX。他们有关于RHEL Support for OpenJDK 9 的信息,所以也许他们在那里说了什么(我看不懂,因为我不是 RHEL 订阅者)。如果您与 Redhat 签订了支持合同,并且该信息在他们的站点上不可用,那么您可以 ping 他们并询问他们有关托管在其存储库中的 OpenJFX JavaFX 发行版(查看它们是否存在或是否有计划把它们放在那里)。

【讨论】:

我真正不想要的是 1) 将 Java 二进制文件与我的应用程序一起发送,以便可以单独应用修复程序;2) 使用相同的源代码构建不同的二进制文件,从而导致由于构建而导致的随机错误环境。我想我应该能够再从 Red Hat 获得大约一年的更新,因此我会看看 Red Hat 会在这方面做些什么。如果他们没有在他们的存储库中发布 JavaFX,那么最后一种方法是说 Oracle 提供的 Oracle Java SE RPM 是运行软件的要求。 一旦你看到 Red Hat 将在这方面做什么并拥有 15 名声望,你应该可以self answer your own question,请这样做。 请不要使用那些 rpm。使用拉链。只需打开包装即可。 这些 RPM 究竟出了什么问题? @judovana @judovana 是 RHEL 的 OpenJDK RPM 维护者。我相信他的话,Oracle 发布的 RPM 不能与 RHEL 上的其他 Java RPM 配合使用,并且如果安装可能会在您的系统中引起奇怪的问题。

以上是关于来自 RHEL 的 JavaFX的主要内容,如果未能解决你的问题,请参考以下文章

rhel7报错整理

如何减小 RHEL/Centos/Fedora Docker 镜像的大小

CentOS(RHEL)内核版本与系统版本对应关系

大家喜欢的CentOS Linux 8.2 (2004) 来了,基于RHEL 8.2

JavaFX:仿win画图

如何在CentOS/RHEL 7上借助ssm管理LVM卷