Java 安装openJDK+;Ubuntu 20上的OpenJFX8

Java 安装openJDK+;Ubuntu 20上的OpenJFX8,java,ubuntu,javafx-8,openjfx,Java,Ubuntu,Javafx 8,Openjfx,我正试图在Ubuntu 20.10上安装OpenJDK 8和OpenJFX 8 在Ubuntu上安装openJFX 8一直有点棘手,但我过去可以使用这个答案中的提示来完成这项工作:它曾经工作得很好(我想我使用的是Ubuntu19.something),但是最近似乎8u161-b12-1ubuntu2被删除了 有关更多背景信息,我将通过自动管道中的docker文件来安装它。以下是Dockerfile的相关部分: FROM my.company.internal.registry:443/ubunt

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

在Ubuntu上安装openJFX 8一直有点棘手,但我过去可以使用这个答案中的提示来完成这项工作:它曾经工作得很好(我想我使用的是Ubuntu19.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
到目前为止我都试过了 我已经尝试将我的
ubuntu:latest
从Dockerfile中的
行更改为
ubuntu:19:10
,但我仍然收到缺少的包错误


我尝试删除那些版本限制(8u161-b12-1ubuntu2
),但在安装过程中没有发现任何错误,但在编译代码时,找不到任何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安装java 8.0.252.fx zulu

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

对于版本8,并非所有OpenJDK都包含JavaFX(例如,采用OpenJDK)。我找到的最好的是

  • :您必须在Java包下拉列表中选择“JDK FX”
  • :您必须选择“完整JDK”
Liberica为raspberry pi和各种其他体系结构提供构建。如果你需要的话,Liberica是最好的选择

使用Oracle JDK(即使只是作为临时解决方案) 我刚才在回答这个问题时已经说过了

对于任何希望了解javafx基本实践的学习者来说,安装Oracle的Java8(内置javafx)可能是一个比使用开放软件包更好的解决方案。有很多

您可以继续努力安装openjfx,但这将使您继续学习

我对docker文件和自动化管道一无所知,但我怀疑很多人都是早期学习手动安装的人

NB,AARN已经在OP的评论中提出了这个解决方案,请考虑投票赞成这个评论。< /P> <强>通过Ap资质< /StR>安装LeVICICJDK/JRE JDK很容易安装在基于Ubuntu/Debian的支持aptitude软件包管理器的操作系统上

您只需添加官方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
来保护一些空间。安装完成后,使用JavaFX的应用程序工作正常

例如,如果您使用Debian而没有使用Ubuntu存储库,您需要输入以下命令以确保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

看起来8不在最近的回购协议中。看起来仍然适用。谢谢,这看起来很棒。一旦我有机会尝试一下(可能需要一段时间),我会接受这个答案。看起来它安装了OpenJDK 8的Azul zulu版本,我认为应该可以(需要检查是否添加了任何法律/许可更改)。听起来sdkman是一个很好的方法,而且可能是安装它最方便的方法,但实际上问题的答案是使用zulu或其他OpenJDK社区构建。我同意,如果人们只想学习,使用Oracle JDK是一个很好的方法。在我的情况下,这不是一个选项,因为这是供生产使用的,而且我的公司在Oracle的许可方面存在一些问题。您能否澄清(在编辑或评论中)为什么在安装此java版本之前必须通过apt purge卸载所有以前安装的java版本?我不愿意这样做,因为它需要一些努力才能建立起来,如果Liberica不行,我不想重做。这只是我推荐的。如果您需要安装多个java版本,那么当然不要这样做。只安装一个java版本可以使运行应用程序更容易,因为您可以确保操作系统中的java命令确实指向liberica java版本,因此使用正确的版本来执行。