在 Ubuntu 20 上安装 openJDK+openJFX 8到目前为止,我尝试过什么

2022-09-03 05:44:42

我正在尝试在Ubuntu 20.10上安装OpenJDK 8和OpenJFX 8。

在Ubuntu上安装openJFX 8一直有点棘手,但我曾经能够使用这个SO答案中的提示来做到这一点:https://stackoverflow.com/a/56166582/2423283 那曾经工作得很好(我想我使用的是Ubuntu 19.something),但是最近似乎被删除了。8u161-b12-1ubuntu2

有关更多背景信息,我将通过自动化管道中的 docker 文件安装此文件。以下是 Dockerfile 的相关部分:

FROM my.company.internal.registry:443/ubuntu:latest

RUN apt -y update && \
    apt -y install \
    openjdk-8-jdk \
    openjfx=8u161-b12-1ubuntu2 \
    libopenjfx-java=8u161-b12-1ubuntu2 \
    libopenjfx-jni=8u161-b12-1ubuntu2

这曾经运行得很好,但现在我得到:

E: Version '8u161-b12-1ubuntu2' for 'openjfx' was not found
E: Version '8u161-b12-1ubuntu2' for 'libopenjfx-java' was not found
E: Version '8u161-b12-1ubuntu2' for 'libopenjfx-jni' was not found

到目前为止,我尝试过什么

我尝试在 Dockerfile 的行中将 my 更改为,但我仍然收到缺少的软件包错误。ubuntu:latestubuntu:19:10FROM

我尝试删除这些版本限制(),并且在安装过程中没有看到任何错误,但是当我编译代码时,找不到任何JavaFX类。=8u161-b12-1ubuntu2


答案 1

如果您打算使用JDK 8和JavaFX,我发现最好安装包含JavaFX的OpenJDK。

对于版本8,并非所有OpenJDK都包含JavaFX(例如AdoptOpenJDK)。我发现的最好的是

  • 祖鲁语:您必须在Java包下拉列表中选择“JDK FX”
  • Liberica:您必须选择“完整JDK”

Liberica 为树莓派和各种其他架构提供构建。如果你需要它,Liberica就是你要走的路。


答案 2

我偶然发现了同样的问题,发现最简单的解决方案是使用sdkman:https://sdkman.io/install

有了这三个命令,我能够在Ubuntu 20.04上安装带有JavaFX的openjdk 8:

curl -s "https://get.sdkman.io" | bash

source "$HOME/.sdkman/bin/sdkman-init.sh"

sdk install java 8.0.252.fx-zulu