下载和设置 JavaFX
JavaFX 是一个开源的下一代客户端应用程序平台,适用于桌面、移动和嵌入式系统,基于 Java 构建。它提供了一个 API,用于设计在 Java 支持的每个设备上运行的 GUI 应用程序。
本教程将指导您完成在您的操作系统上安装 JavaFX 的过程。
下载 JavaFX
JavaFX 是一个独立组件,建立在 Java 开发工具包之上。因此,您应该考虑安装一个与您计划使用的 JavaFX 版本兼容的 Java 开发工具包 (JDK),例如,JavaFX 21 需要先安装 JDK 21。您可以按照 设置 Java 开发工具包 部分的 Java 入门 教程了解如何安装 JDK。
有一个一站式页面始终引用最新版本的 JavaFX 和 JDK:https://jdk.java.net/。选择最新的“可使用”JavaFX 版本将带您进入一个页面,您可以在其中下载所需的 JDK 版本。从该页面,您可以选择使用 JavaFX 的方式
- 将 JavaFX 用作 SDK 来编译和运行 JavaFX 应用程序。
- 下载包含一系列 jmod 文件的存档,并将这些文件与 jlink 一起使用以创建包含 JavaFX 模块(以及可选的模块化应用程序)的 JDK。
您应该根据您的操作系统下载 JavaFX
- Linux/x64
- macOS/x64
- macOS/AArch64
- Windows/x64
此页面提供生产就绪的 JavaFX 开源版本,根据 GNU 通用公共许可证版本 2,附带类路径例外。
为 Windows/x64 设置 JavaFX SDK
如果您选择使用 JavaFX SDK for Windows/x64,请将其下载并解压缩到所需位置。在本节中,您将使用 JavaFX 21.0.1。
添加一个指向运行时 lib 目录的环境变量
set PATH_TO_FX="path\to\javafx-sdk-21.0.1\lib"
现在,您可以使用 JavaFX 运行时从命令行编译和运行 JavaFX 应用程序。让我们通过编写一个简单的 HelloWorldFX.java
类来测试它
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloWorldFX extends Application {
@Override
public void start(Stage stage) {
String javaVersion = System.getProperty("java.version");
String javafxVersion = System.getProperty("javafx.version");
Label l = new Label("Hello World running on JavaFX " + javafxVersion + " on top of Java " + javaVersion + ".");
Scene scene = new Scene(new StackPane(l), 640, 480);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}
首先,您将使用以下命令进行编译
javac --module-path %PATH_TO_FX% --add-modules javafx.controls HelloWorldFX.java
在编译应用程序时,您需要添加所需的模块(javafx.controls
)。所需的模块(javafx.controls
)解析了传递依赖的模块(javafx.graphics
)的依赖关系。如果您的应用程序通过 FXML
声明组件,您还应该添加 javafx.fxml
模块
javac --module-path %PATH_TO_FX% --add-modules javafx.controls,javafx.fxml HelloWorldFX.java
现在,使用以下命令运行应用程序
java --module-path %PATH_TO_FX% --add-modules javafx.controls HelloWorlFX
为 Linux/x64 设置 JavaFX SDK
如果您选择使用 JavaFX SDK for Linux/x64,请将其下载并解压缩到所需位置。在本节中,您将使用 JavaFX 21.0.1。
添加一个指向运行时 lib 目录的环境变量
export PATH_TO_FX=path/to/javafx-sdk-21.0.1/lib
现在,您可以使用 JavaFX 运行时从命令行编译和运行 JavaFX 应用程序。让我们通过编写一个简单的 HelloWorldFX.java
类来测试它
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloWorldFX extends Application {
@Override
public void start(Stage stage) {
String javaVersion = System.getProperty("java.version");
String javafxVersion = System.getProperty("javafx.version");
Label l = new Label("Hello World running on JavaFX " + javafxVersion + " on top of Java " + javaVersion + ".");
Scene scene = new Scene(new StackPane(l), 640, 480);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}
首先,您将使用以下命令进行编译
javac --module-path $PATH_TO_FX --add-modules javafx.controls HelloWorldFX.java
在编译应用程序时,您需要添加所需的模块(javafx.controls
)。所需的模块(javafx.controls
)解析了传递依赖的模块(javafx.graphics
)的依赖关系。如果您的应用程序通过 FXML
声明组件,您还应该添加 javafx.fxml
模块
javac --module-path $PATH_TO_FX --add-modules javafx.controls,javafx.fxml HelloWorldFX.java
现在,使用以下命令运行应用程序
java --module-path $PATH_TO_FX --add-modules javafx.controls HelloWorlFX
为 macOS 设置 JavaFX SDK
如果您选择使用 JavaFX SDK for macOS,请将其下载并解压缩到所需位置。在本节中,您将使用 JavaFX 21.0.1。
添加一个指向运行时 lib 目录的环境变量
export PATH_TO_FX=path/to/javafx-sdk-21.0.1/lib
现在,您可以使用 JavaFX 运行时从命令行编译和运行 JavaFX 应用程序。让我们通过编写一个简单的 HelloWorldFX.java
类来测试它
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloWorldFX extends Application {
@Override
public void start(Stage stage) {
String javaVersion = System.getProperty("java.version");
String javafxVersion = System.getProperty("javafx.version");
Label l = new Label("Hello World running on JavaFX " + javafxVersion + " on top of Java " + javaVersion + ".");
Scene scene = new Scene(new StackPane(l), 640, 480);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}
首先,您将使用以下命令进行编译
javac --module-path $PATH_TO_FX --add-modules javafx.controls HelloWorldFX.java
在编译应用程序时,您需要添加所需的模块(javafx.controls
)。所需的模块(javafx.controls
)解析了传递依赖的模块(javafx.graphics
)的依赖关系。如果您的应用程序通过 FXML
声明组件,您还应该添加 javafx.fxml
模块
javac --module-path $PATH_TO_FX --add-modules javafx.controls,javafx.fxml HelloWorldFX.java
现在,使用以下命令运行应用程序
java --module-path $PATH_TO_FX --add-modules javafx.controls HelloWorlFX
使用 JavaFX 运行时映像
您也可以使用 JavaFX 发布页面中提供的 jmod 文件集运行您的 JavaFX 应用程序。首先下载适合您操作系统的存档
- Linux/x64
- macOS/x64
- macOS/AArch64
- Windows/x64
如果您的操作系统是 Linux/x64 或 macOS,请解压缩下载的存档并添加指向生成的 jmods 目录的环境变量
export PATH_TO_FX_JMODS=path/to/javafx-jmods-21.0.1
如果您是 Windows 操作系统用户,请解压缩下载的存档并添加指向生成的 jmods 目录的环境变量
set PATH_TO_FX_JMODS="path\to\javafx-jmods-21.0.1"
要使用 jmod 文件集,我们需要使 HelloWorldFX.java
应用程序成为模块的一部分。首先,您需要在类中添加包声明
package helloworld;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloWorldFX extends Application {
@Override
public void start(Stage stage) {
String javaVersion = System.getProperty("java.version");
String javafxVersion = System.getProperty("javafx.version");
Label l = new Label("Hello World running on JavaFX " + javafxVersion + " on top of Java " + javaVersion + ".");
Scene scene = new Scene(new StackPane(l), 640, 480);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}
其次,您必须创建一个 module-info.java
,在其中声明运行应用程序所需的模块
module helloworldfx {
requires javafx.controls;
exports helloworld;
}
接下来,您可以使用 JavaFX jmod 文件编译 HelloWorldFX.java
应用程序
- 对于 Linux/x64、macOS/x64、macOS/AArch64
javac --module-path $PATH_TO_FX_MODS -d mods/helloworldfx $(find . -name "*.java")
- 对于 Windows
dir /s /b *.java > sources.txt & javac --module-path %PATH_TO_FX_JMODS% -d mods/helloworldfx @sources.txt & del sources.txt
因为 helloworldfx
是一个模块化项目,所以您可以使用 jlink
使用 JavaFX jmods 创建自定义运行时映像
- 在 Linux/x64、macOS/x64、macOS/AArch64 上
$JAVA_HOME/bin/jlink --module-path $PATH_TO_FX_MODS:mods --add-modules helloworldfx --output helloworldfx
- 在 Windows 上
jlink --module-path "%PATH_TO_FX_JMODS%;mods" --add-modules helloworldfx --output helloworldfx
映像构建完成后,您可以使用以下命令运行它
- 在 Linux/x64、macOS/x64、macOS/AArch64 上
helloworldfx/bin/java -m helloworldfx/helloworld.HelloWorldFX
- 在 Windows 上
helloworldfx\bin\java -m hellofx/helloworld.HelloWorldFX
最后的话
恭喜您成功下载、安装和使用 JavaFX!
如需进一步阅读,请查看 JavaFX 基础。
上次更新: 2023 年 11 月 15 日