目录
[解决方法2: 使用module-info.java配置解决](#解决方法2: 使用module-info.java配置解决)
1.下载并解压
- JavaFX下载地址:JavaFX - Gluon
选择合适自己电脑配置的sdk版本下载

- 打不开网页的参考这个博客,这个博主写的是idea的下载方法: (idea版本)下载javaFX和配置环境详细大全_javafx下载-CSDN博客
- 下载后的文件名如下图所示:

- jar文件:

2.Eclipse配置
- 建议新建一个Java Project,因为配置的时候其他文件容易出错
在新建的Project上右键 -> Build Path -> Configure Build Path...

鼠标点在Modulepath上,点击右侧的Add Library...

点击User Library 并Next >

点击New -〉 命名(名称随意,只要代表javafx)-〉 OK

保存更改并关闭
3.报错问题
最常见的错误是:

这个错误提示"错误: 缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序"通常表明尽管 JavaFX 的类可能在编译时被找到(因为可能你的开发环境已经配置好了),但在运行时 JVM(Java 虚拟机)无法在类路径(classpath)或模块路径(module-path,对于 Java 9 及更高版本)中找到 JavaFX 的运行时库。
对于 Java 8,JavaFX 是 JDK 的一部分,但通常不包含在 JRE(Java 运行时环境)中。如果你的应用程序是作为独立的 JAR 文件运行的,并且你没有将 JavaFX 的库包含在 JAR 文件中或作为外部库指定给 JVM,那么就会出现这个错误。
解决方法1:将javaSE更改到9以下

解决方法2: 使用module-info.java配置解决
在文件最顶部或最底部找到这个文件,没有找到可能是在默认包中或者创建项目时没有勾选Create module-info.java file
这里就不需要将javaSE更改了,因为module-info.java在javaSE低于9时会报错

代码展示(JavaFX和chapter_14是我的项目名和包名,请更换成自己的项目和包的名字):
java
module JavaFX {
requires javafx.controls;
requires javafx.fxml;
opens chapter_14 to javafx.fxml;
exports chapter_14;
}
这里注意一定要把JavaFX放在Modulepath中

示例代码:
java
package chapter_14;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class 程序清单14_1MyJavaFX extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Button btOK = new Button("OK");
StackPane root = new StackPane();
root.getChildren().add(btOK);
Scene scene = new Scene(root, 200, 250);
primaryStage.setTitle("MyJavaFX");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}
输出结果:
