在 Ubuntu 20 上安装 openJDK+openJFX 8
Install openJDK+openJFX 8 on Ubuntu 20
我正在尝试在 Ubuntu 20.10 上安装 OpenJDK 8 和 OpenJFX 8。
在 Ubuntu 上安装 openJFX 8 一直有点棘手,但我曾经能够使用来自这个 SO 答案的提示来完成它: 过去工作正常(我以为我使用的是 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 中 FROM
行中的 ubuntu:latest
更改为 ubuntu:19:10
,但我仍然遇到缺少包的错误。
我尝试删除那些版本限制(=8u161-b12-1ubuntu2
)并且在安装过程中没有看到任何错误,但是当我编译我的代码时,none 的 JavaFX 类 可以找到。
我偶然发现了同样的问题,发现最简单的解决方案是使用 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
如果您打算使用 JDK 8 和 JavaFX,我发现最好安装一个包含 JavaFX 的 OpenJDK。
对于版本 8,并非所有 OpenJDK 都包含 JavaFX(例如 AdoptOpenJDK)。我找到的最好的是
Liberica 为 raspberry pi 和各种其他架构提供构建。如果您需要,Liberica 是您的不二之选。
使用 Oracle JDK(即使只是作为临时解决方法)
我刚才在回答
时已经说过了
对于任何想要使用 javafx 进行一些基本练习的学习者来说,安装 Oracle 的 Java 8(内置 javafx)可能是一个更好的解决方案,而不是摆弄开放包。有很棒的instructions here
您可以继续努力安装 openjfx,但这会让您继续学习。
我对 docker 文件和自动化管道一无所知,但我怀疑很多来问这个问题的人只是进行手动安装的早期学习者。
注意,aran 已在对 OP 的评论中提出了此解决方法,请考虑对该评论投赞成票。
通过 Aptitude 安装 Liberica JDK / JRE
Liberica JDK 在支持 aptitude 包管理器的基于 Ubuntu / Debian 的操作系统上安装起来非常容易。
您所要做的就是添加官方 BellSoft 存储库:
wget -q -O - "https://download.bell-sw.com/pki/GPG-KEY-bellsoft" | sudo apt-key add -
echo "deb [arch=amd64] https://apt.bell-sw.com/ stable main" | sudo tee /etc/apt/sources.list.d/bellsoft.list
然后更新您的软件包并安装完整的 bellsoft java 版本。使用完整版很重要,因为它是 JFX 随附的唯一版本。还请记住,在安装此 java 版本之前,您应该通过 apt purge
卸载所有以前安装的 java 版本。
sudo apt-get update
sudo apt-get install bellsoft-java8-full
如果您只需要 JRE,您可以使用 bellsoft-java8-runtime-full
来保护一些 space。安装完成后,使用 JavaFX 的应用程序工作正常。
如果您没有使用 Ubuntu 存储库,因为您使用的是 Debian,例如您需要输入以下命令以确保 Bellsoft 存储库的 apt update
没有验证错误.
#Use this only in case there is a verification error on update
apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv-keys 32E9750179FCEA62
如果您没有使用带有 aptitude 包管理器的操作系统,还支持其他一些包管理器,例如 yum 和 yast。 Click here
我正在尝试在 Ubuntu 20.10 上安装 OpenJDK 8 和 OpenJFX 8。
在 Ubuntu 上安装 openJFX 8 一直有点棘手,但我曾经能够使用来自这个 SO 答案的提示来完成它: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 中 FROM
行中的 ubuntu:latest
更改为 ubuntu:19:10
,但我仍然遇到缺少包的错误。
我尝试删除那些版本限制(=8u161-b12-1ubuntu2
)并且在安装过程中没有看到任何错误,但是当我编译我的代码时,none 的 JavaFX 类 可以找到。
我偶然发现了同样的问题,发现最简单的解决方案是使用 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
如果您打算使用 JDK 8 和 JavaFX,我发现最好安装一个包含 JavaFX 的 OpenJDK。
对于版本 8,并非所有 OpenJDK 都包含 JavaFX(例如 AdoptOpenJDK)。我找到的最好的是
Liberica 为 raspberry pi 和各种其他架构提供构建。如果您需要,Liberica 是您的不二之选。
使用 Oracle JDK(即使只是作为临时解决方法)
我刚才在回答
对于任何想要使用 javafx 进行一些基本练习的学习者来说,安装 Oracle 的 Java 8(内置 javafx)可能是一个更好的解决方案,而不是摆弄开放包。有很棒的instructions here
您可以继续努力安装 openjfx,但这会让您继续学习。
我对 docker 文件和自动化管道一无所知,但我怀疑很多来问这个问题的人只是进行手动安装的早期学习者。
注意,aran 已在对 OP 的评论中提出了此解决方法,请考虑对该评论投赞成票。
通过 Aptitude 安装 Liberica JDK / JRE
Liberica JDK 在支持 aptitude 包管理器的基于 Ubuntu / Debian 的操作系统上安装起来非常容易。
您所要做的就是添加官方 BellSoft 存储库:
wget -q -O - "https://download.bell-sw.com/pki/GPG-KEY-bellsoft" | sudo apt-key add -
echo "deb [arch=amd64] https://apt.bell-sw.com/ stable main" | sudo tee /etc/apt/sources.list.d/bellsoft.list
然后更新您的软件包并安装完整的 bellsoft java 版本。使用完整版很重要,因为它是 JFX 随附的唯一版本。还请记住,在安装此 java 版本之前,您应该通过 apt purge
卸载所有以前安装的 java 版本。
sudo apt-get update
sudo apt-get install bellsoft-java8-full
如果您只需要 JRE,您可以使用 bellsoft-java8-runtime-full
来保护一些 space。安装完成后,使用 JavaFX 的应用程序工作正常。
如果您没有使用 Ubuntu 存储库,因为您使用的是 Debian,例如您需要输入以下命令以确保 Bellsoft 存储库的 apt update
没有验证错误.
#Use this only in case there is a verification error on update
apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv-keys 32E9750179FCEA62
如果您没有使用带有 aptitude 包管理器的操作系统,还支持其他一些包管理器,例如 yum 和 yast。 Click here