下载安装JavaFX及解决报错:缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序|Eclipse

目录

1.下载并解压

2.Eclipse配置

3.报错问题

解决方法1:将javaSE更改到9以下

[解决方法2: 使用module-info.java配置解决](#解决方法2: 使用module-info.java配置解决)


1.下载并解压

选择合适自己电脑配置的sdk版本下载

  • jar文件:

2.Eclipse配置

  • 建议新建一个Java Project,因为配置的时候其他文件容易出错

在新建的Project上右键 -> Build Path -> Configure Build Path...

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

点击User LibraryNext >

点击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);  
    }  
}

输出结果:

相关推荐
代码匠心5 小时前
从零开始学Flink:数据源
java·大数据·后端·flink
掘金一周5 小时前
Flutter Riverpod 3.0 发布,大规模重构下的全新状态管理框架 | 掘金一周 9.18
前端·人工智能·后端
间彧5 小时前
Spring Boot项目中如何自定义线程池
java
一涯5 小时前
页面出现空白区域
前端
间彧6 小时前
Java线程池详解与实战指南
java
用户298698530146 小时前
Java 使用 Spire.PDF 将PDF文档转换为Word格式
java·后端
spmcor6 小时前
MinIO本地对象存储部署指南
前端
少年纪6 小时前
前端用 pdf.js 将 PDF 渲染到 Canvas 再转图片,文字消失的坑
前端
RoyLin6 小时前
TypeScript设计模式:复合模式
前端·后端·typescript
渣哥6 小时前
ConcurrentHashMap 1.7 vs 1.8:分段锁到 CAS+红黑树的演进与性能差异
java