java_lib常见error

[!NOTE] 在 javac 编译和使用 java 运行时自动添加库,使用--module-path 添加库路径,使用--module-add 添加库

在较新的 Ubuntu 版本(如 22.04)中,openjdk-8-jdk 包仅包含 OpenJDK 8 的核心功能,不再包括 JavaFX 库。JavaFX 自 Java 11 起被移除出了 JDK,所以在 OpenJDK 8 也没有自动包含 JavaFX。

原因:

  1. JavaFX 的分离
    • Java 11 起,JavaFX 被从标准 JDK 中移除,成为一个独立的模块。OpenJDK 8 并不包含 JavaFX,因为它的设计理念和未来版本的 JavaFX 模块化策略有所不同。
  2. JavaFX 与 OpenJDK 8
    • 在 OpenJDK 8 时,JavaFX 是作为 JDK 的一部分提供的,但在更高版本中(如 Java 11 和之后),它被移除到一个独立的库中。因此,OpenJDK 8 的包中不再包含 JavaFX。

解决方法:

要在使用 OpenJDK 8 的系统上添加 JavaFX,你需要手动安装 JavaFX SDK。请按照以下步骤操作:

  1. 下载 JavaFX SDK
    • 访问 OpenJFX官网 下载与你的操作系统匹配的 JavaFX SDK。
  2. 解压并配置 JavaFX
    • 解压下载的 SDK 文件。你会得到一个包含 JavaFX JAR 文件的 lib 文件夹。
  3. 编译和运行 JavaFX 应用程序
    • 编译 JavaFX 程序时,使用 --module-path 参数来指定 JavaFX JAR 文件的位置。
    • 运行 JavaFX 程序时,使用 --module-path--add-modules 参数来确保 JavaFX 模块可用。

示例:

假设你下载并解压的 JavaFX SDK 位于 /path/to/javafx-sdk,然后你可以使用以下命令编译和运行 JavaFX 程序:

编译

1
javac --module-path /path/to/javafx-sdk/lib --add-modules javafx.controls HappyFaceFX.java

运行

1
java --module-path /path/to/javafx-sdk/lib --add-modules javafx.controls HappyFaceFX

这样可以确保 JavaFX 库正确地与 OpenJDK 8 一起使用。


java_lib常见error
http://example.com/2024/09/14/java-lib常见error/
作者
JunBin Liang
发布于
2024年9月14日
许可协议