【问题标题】:Install javaFX on docker image在 docker 镜像上安装 javaFX
【发布时间】:2022-01-08 00:44:10
【问题描述】:

我有一个基于 Linux (CentOS Linux) 和 Java OpenJDK 11 的映像。我正在尝试通过这个 dockerfile 在映像上安装 javafx:

USER root
yum -y update   && \
yum install –y openjfx

但是当我尝试构建映像时,我得到“没有可用的包 javafx”。并且“ yum install OCoy javafx' 返回了一个非零代码:1” 我做错了什么?是否有另一种方法可以在 Docker 映像中包含 JavaFX 库?

【问题讨论】:

  • 您想创建一个自定义的基于 openjdk 的 jdk 或包含 JavaFX 模块的 jre 吗? (答案是 jdk 或 jre 或其他有更好解释的东西)。
  • 我想包含 JavaFX 模块。我找到了这个 openjfx.io/openjfx-docs/#maven 。我现在正在尝试在 pom 文件中指定模块并将它们复制到图像中。不确定它是否会起作用
  • 我不清楚您要做什么,但如果您只需要为您选择的包含 JavaFX 模块的平台定制一个 Java 运行时,那么使用 jlink 创建一个非常好,这是任何现代 jdk 发行版的一部分。
  • 或者你可以使用jpackage创建一个rpm,你的docker可以安装它(如果你想把它放在那里,可以从yum repo)。但是,正如我所说,我不知道你想要什么,所以我的 cmets 可能不适用于你,或者只是令人困惑。如果它们不是您问题的相关解决方案,请忽略它们。

标签: java linux docker javafx


【解决方案1】:

您可以安装替代 JDK,例如 Liberica 或 Corretto,其中包含 OpenJFX-Distribution。

【讨论】:

  • 感谢您的输入,但使用替代 JDK 对我来说不是一个选项。我应该在问题中提到它。
  • 那么您可能需要手动下载 OpenJFX 包(例如通过 cURL)并将其 lib-content 解压缩到 $JAVA_HOME/lib 和 bin-content 到 $JAVA_HOME/bin。那最终应该可以解决问题。但是,这有点错误,因为您需要在 Dockerfile 或 shell 脚本中更新该下载链接。另一种方法可能是将其下载到您的主机并让 docker build 将其复制到正确的目的地。
  • 您想要做的是描述here。你基本上想根据你的操作系统下载一个发行版 vom gluonhq.com,你很高兴。您也可以从 Maven 获得 OpenJFX-JAR,但您也必须查看平台。当然没有办法。 (但 Docker 始终是 linux arm 或 amd64)。 gluonhq 分发的好处是例如添加了源代码。
  • 有时在处理 cmets 时,我发现编辑问题、引用问题中的评论文本并在此处而不是在评论字段中写下回复很有用。然后,您将获得长度不限的回复并保留完整的编辑和格式化选项,这是您在 cmets 中无法获得的,并且通常会提高答案质量。只是一个建议。
  • 看看repo1.maven.org/maven2/org/openjfx/javafx-graphics/15.0.1。这是 15.0.1-javafx-graphics 的存储库条目。 JAR 与几个分类器一起存在。除了源代码和 javadoc,您还有用于 win、mac 和 linux 的 JAR。如前所述,对于 Linux,您总是需要带有 linux 分类器的分类器。
猜你喜欢
  • 2021-11-23
  • 2020-01-25
  • 2020-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-10
相关资源
最近更新 更多