1.源起

最近,我在Java的官方教程中测试一个代码示例,示例用到了JavaFX。但在Intellij IDEA中,我配置好久才成功运行,所以记录下来,防止以后忘记。

2.我的编码环境

以下是我使用的编码环境:

OS: ArchLinux
IDE: Intellij Idea 2022.1.4 Community Edition

3.配置过程

下面讲述两种JDK版本的配置过程。

(1) JDK 18

操作系统上需要安装的包有:

  • jdk-openjdk (openjdk在archlinux发行版上的最新版,撰写本文时为18.0.2.u9)
  • java-openjfx (openjfx在archlinux发行版上的最新版,撰写本文时为18.0.2.u2)

如果要可视化编辑fxml文件,需要安装下面这个包:

  • javafx-scenebuilder (scenebuilder在archlinux发行版上的最新版,撰写本文时为18.0.0,此软件包不在archlinux的软件仓库中,需要从AUR上安装)。

jdk-openjdk的jdk所在路径如下所示:

/usr/lib/jvm/java-18-openjdk/
├── bin
├── conf -> /etc/java-openjdk
├── demo
├── include
├── jmods
├── legal -> /usr/share/licenses/java-openjdk
├── lib
├── man -> /usr/share/man
└── release

java-openjfx的库文件安装在jdk-openjdk的lib目录下:

java-openjfx /usr/lib/jvm/java-18-openjdk/lib/javafx-swt.jar
java-openjfx /usr/lib/jvm/java-18-openjdk/lib/javafx.base.jar
java-openjfx /usr/lib/jvm/java-18-openjdk/lib/javafx.controls.jar
java-openjfx /usr/lib/jvm/java-18-openjdk/lib/javafx.fxml.jar
java-openjfx /usr/lib/jvm/java-18-openjdk/lib/javafx.graphics.jar
java-openjfx /usr/lib/jvm/java-18-openjdk/lib/javafx.media.jar
java-openjfx /usr/lib/jvm/java-18-openjdk/lib/javafx.properties
java-openjfx /usr/lib/jvm/java-18-openjdk/lib/javafx.swing.jar
java-openjfx /usr/lib/jvm/java-18-openjdk/lib/javafx.web.jar

scenebuilder 18所在路径如下所示:

/opt/scenebuilder/
├── bin
│   └── SceneBuilder
├── lib
│   ├── app
│   ├── libapplauncher.so
│   ├── runtime
│   ├── scenebuilder.desktop
│   ├── SceneBuilder.png
│   └── scenebuilder-SceneBuilder.desktop
└── share
    └── doc

首先,在Idea中新建一个项目,jdk选择jdk-18。

然后,点击菜单栏的File -> Project Structure(快捷键Ctrl+Alt+Shift+S),选择Modules,在Dependencies中添加依赖。选中openjfx的8个jar文件。

应用更改后,在src目录下新建示例文件,把示例代码粘贴过来,编译通过,但是运行会报错!

这时候,我们还需要点击菜单栏的Run -> Edit Configurations,添加VM Options(快捷键Alt+V)。添加的参数如下:

--module-path /usr/lib/jvm/java-18-openjdk/lib/javafx.base.jar:/usr/lib/jvm/java-18-openjdk/lib/javafx.controls.jar:/usr/lib/jvm/java-18-openjdk/lib/javafx.graphics.jar --add-modules javafx.controls

应用更改后,再次运行,成功!

(2) jdk 8

最后修改:2023 年 01 月 23 日
如果觉得我的文章对你有用,请随意赞赏