如何在Ubuntu 18.04.2 LTS上使Java FX与OpenJDK 8一起运行?

时间:2019-05-16 10:19:55

标签: java ubuntu javafx openjfx

尝试在环境中编译JavaFX应用程序时:

java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-0ubuntu1.18.04.1-b03)
OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)

cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS"

我收到错误消息:

cannot access javafx.event.EventHandler
[ERROR]   class file for javafx.event.EventHandler not found

我试图通过以下链接找到解决方案:

最有前途的行动

  1. 使用apt安装openjfx来安装openjfx
  2. 将JAVA_HOME环境变量设置为/ usr / lib / jvm / java-8-openjdk-amd64

但是错误仍然存​​在。

要使OpenJDK 8和JavaFX在Ubuntu 18.04.2 LTS上运行需要做什么?

3 个答案:

答案 0 :(得分:6)

的提示

https://github.com/JabRef/help.jabref.org/issues/204

有帮助。命令:

apt purge openjfx
apt install openjfx=8u161-b12-1ubuntu2 libopenjfx-jni=8u161-b12-1ubuntu2 libopenjfx-java=8u161-b12-1ubuntu2
apt-mark hold openjfx libopenjfx-jni libopenjfx-java

解决了该问题。非常感谢https://github.com/Druidefix。 (如果您想自己回答,我会很乐意删除我自己的答案...)

答案 1 :(得分:1)

我所做的是从源代码构建它。说明here on the OpenJDK wiki对我有用。构建完之后,我不得不将罐子放在正确的位置,就像this other stackoverflow post所说的那样。

cd build/sdk/
sudo cp -R rt/lib /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/
sudo cp ./lib/ant-javafx.jar /usr/lib/jvm/java-8-openjdk-amd64/lib/
sudo cp ./lib/javafx-mx.jar /usr/lib/jvm/java-8-openjdk-amd64/lib/

那之后我就可以编译我的项目了!

答案 2 :(得分:-2)

使用Oracle JDK(即使只是作为临时解决方法)

对于所有希望使用javafx进行一些基础练习的学习者,安装Oracle的Java 8(内置Javafx)可能是一个更好的解决方案,而不是将其与开放包打乱。有很棒的instructions here

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

阿兰(Aran)在对OP的评论中已经建议了这一点,请考虑对该评论进行投票。

相关问题