前言

今天是想用一下JavaFX来完成作业题的。书上说道:“AWT开发简单图形用户界面尚可,但是不适合开发综合型的GUI项目;之后AWT被更健壮、功能更齐全和更灵活的Swing组件替代;但现在它被一个全新的GUI平台JavaFX所替代”。JavaFX更容易学习和使用,相对于Swing而言,JavaFX是一个更好地展示面向对象编程的教学工具,而且Swing实质上已经消亡,不会再得到任何的改进。书上都这么说了,那就跟进巨人们的步伐,学习更好的东西。但我遇到了不少的问题。


我的开发环境:

系统:ubuntu 19.04
Java版本:Openjdk13
编辑器:IDEA

openjdk和oracle jdk的区别

openjdk和oracle jdk的详细区别大家可以自行百度一下,这里我只说和JavaFX相关的区别,如果你使用的是oracle jdk8以上的版本,那么Java中是自带JavaFX的,不需要安装就能够直接运行,一般不会有问题。但是如果你和我一样使用的是openjdk比较新的版本,那么Java中是不带有JavaFX的,需要我们自行安装,我是基于IDEA操作的。

安装JavaFX

JavaFX下载地址:https://gluonhq.com/products/javafx/

这是我提供百度网盘下载地址:https://pan.baidu.com/s/1SdsQMm5KGPuh9tEzMXWzNA 提取码:rwy8

先将JavaFX下载下来,然后将下载下来的压缩包提取到 /User 这个路径下,这个路径可以自己选择,这是我存放的路径。

javafx sdk镜像下载 javafx openjdk_javafx sdk镜像下载

然后打开IDEA我们的项目,点击 File -> Project Structure -> Libraries ,将这个库添加到项目中去

javafx sdk镜像下载 javafx openjdk_GUI_02

javafx sdk镜像下载 javafx openjdk_GUI_03

然后点击应用,和OK

javafx sdk镜像下载 javafx openjdk_javafx sdk镜像下载_04

这个时候IDEA已经能找到JavaFX这个包了,但是我依旧不能运行:

javafx sdk镜像下载 javafx openjdk_javafx sdk镜像下载_05

报错提示如上图,我们先定义一个全局变量浏览到之前的 lib 文件夹,点击 Preferences (File -> Settings) -> Appearance & Behavior -> Path Variables 添加一个名为 PATH_TO_FX 的全局变量:

javafx sdk镜像下载 javafx openjdk_jdk_06

然后添加 VM options ,点击 Run -> Edit Configurations…  ,将如下代码添加到 VM options

--module-path ${PATH_TO_FX} --add-modules javafx.controls,javafx.fxml

javafx sdk镜像下载 javafx openjdk_javafx sdk镜像下载_07

现在,这个项目的代码已经可以运行了

javafx sdk镜像下载 javafx openjdk_Java_08

如上图所示,有两个亮眼的警告,系统是Ubuntu,我使用的也不是默认主题,把主题改回Ubuntu默认的主题后就没有警告了。强迫症患者受不了有警告,但是默认的主题绘制出来的页面也不好看,但求大神指点。


安装oracle jdk

这里我没有使用PPA添加源命令行安装,我添加之后依然找不到包,我到官方网站上下载了 jdk-13_linux-x64_bin.deb 和 jdk-13_linux-x64_bin.tar.gz ,这两个包选择其中一个安装就好,这里我选择了 deb 包安装。

deb包下载:https://pan.baidu.com/s/1LNto95_DPNYb2iG0by7U3A 提取码:4zne
tar.gz包下载:https://pan.baidu.com/s/1dYZzYJmvyyBS2cMV55-9hA 提取码:aqdh

安装完成之后,会在 /usr/lib/jvm 下有一个安装文件夹 jdk-13 ,这就安装完成了

javafx sdk镜像下载 javafx openjdk_Java_09

如果你希望默认的 java 是 jdk,大家可以自行百度修改,这里我就不改了,因为自我感觉 jdk-13 用着没有 openjdk 用着爽,而且我基本使用的都是IDEA编写代码,可以根据项目的需求,在IDEA中修改项目的jdk就可以了,这样比上述的配置 JavaFX 方便一些。如果大家在安装 openjdk 的情况下安装 oracle jdk出现异常,大家可以先卸载掉openjdk再安装,卸载命令如下:

sudo apt remove --purge openjdk*
sudo apt autoremove

IDEA中修改项目的JDK,点击 File->Project Structure

javafx sdk镜像下载 javafx openjdk_JavaFX_10


参考资料

https://openjfx.io/openjfx-docs/#maven



可能是我查找资料的方式不对,踩了不少坑,不过也涨了一点见识,走过所有的坑,以后遇到才知道如何解决嘛!记录记一下,希望能对你有所帮助。