当前位置: 首页 > 知识库问答 >
问题:

在Ubuntu 20上安装openJDK openJFX 8

李言
2023-03-14

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

在Ubuntu上安装openJFX 8总是有点棘手,但我过去可以使用以下SO答案中的提示来完成:https://stackoverflow.com/a/56166582/2423283这曾经很好地工作(我想我使用的是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

我已经试着从Dockerfile中的行将我的ubuntu:latest更改为ubuntu:19:10,但仍然出现了缺少包的错误。

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


共有3个答案

汝繁
2023-03-14

Liberica 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的应用程序工作正常。

例如,如果您没有使用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。单击此处

容学林
2023-03-14

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

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

<代码>卷曲-s“https://get.sdkman.io“| bash

source“$HOME/.sdkman/bin/sdkman init.sh”

sdk安装java8.0.252.fxzulu

武彭薄
2023-03-14

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

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

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

Liberica为树莓派和各种其他架构提供构建。如果您需要,Liberica是您的最佳选择。

 类似资料:
  • 问题内容: 我在Android手机上安装Pocketsphinx时遇到一些问题,但在CMUSphinx的支持论坛,IRC,现有的StackOverflow帖子或强化的Googling上找不到答案。如果在座的人有时间愿意提供帮助,我将不胜感激。 首先,我对于是否可以在Android上安装Pocketsphinx感到困惑。我相信我需要Java容器才能在Android上运行,因此我尝试安装Sphinx4

  • 问题内容: 我正在尝试在Ubuntu10.04上安装RMagick。但没有喜悦。我什至从源代码编译并安装了ImageMagick,但是当我尝试使用RubyGems安装RMagick时,这里的说明仍然没有帮助。我收到此错误: 这是什么意思呢?:)我是Ruby和RubyGems的新手,所以请保持谦虚。我的设置如下: 我几乎没有想法(也很累!)。我厌倦了使用上面的链接从源代码编译RMagick,但是由于

  • 问题内容: 我通过阅读本教程安装了预构建版本。如果我启动elasticsearch,则会收到以下错误消息,我应该尝试旧版本的ES还是解决该问题? 问题答案: 您尝试将ES分配给已使用的端口8080。从那里的配置的罪魁祸首是。只需将两个配置都保留在配置之外,或为envvar分配其他端口。ES的默认端口是http和9300的9200。

  • 这是不言自明的... 无法完成安装,因为找不到一个或多个必需的项目。 正在安装的软件:Android 原生开发工具 20.0.0.v201206242043-391819 (com.android.ide.eclipse.ndk.feature.group 20.0.0.v201206242043-391819) 缺少要求:Android本机开发工具20 . 0 . 0 . v 201206242

  • 我使用CentOS(CentOSLinux版本7.5.1804(核心))远程(托管我的服务器,我想运行python脚本)最初安装了python2。 我安装了python3,但是,两个版本的路径似乎都无法识别: 奇怪的Python3确实已安装,路径无法识别。无法运行脚本文件(使用)。

  • 问题内容: 这听起来像是关于SF的重复问题,但我仍未找到明确的答案。我使用“ setup.py install”命令安装了Paramiko 1.7,并在运行demo.py程序时收到此错误: 即使安装了PyCrypto 2.1,我也收到此错误。在运行test.py(安装随附)时,出现以下错误- 在所有这些之后,我没有信心继续安装AES,因为我知道我可能还会遇到另一个ImportError!请指教。安

  • 问题内容: 我根本无法在Windows上安装NumPy。我不断收到此错误- 我之前有Python 64位版本,但不确定NumPy版本是否与64位Python兼容。因此,我将其卸载并安装了32位Python版本。但是我仍然遇到相同的错误。虽然我的Python 32位版本运行正常。 我尝试了“ pip install numpy”,但最后却给我以下错误- 请告诉我我可能做错了什么。 问题答案: 一些解

  • 问题内容: 我正在尝试在Ubuntu 12.10上安装Node.js,但是终端显示了有关丢失软件包的错误。我尝试了这个: 但是当我来到最后一行时显示此错误: 然后,我卸载了,并尝试了第二种选择: 终端机说相同的错误,但同时也向我显示了我在顶部显示的文本。我认为是问题所在,但我不知道如何解决。 问题答案: 只需按照此处给出的说明进行操作: 安装示例: 它会在当前稳定的Ubuntu上安装当前稳定的No