当前位置: 首页 > news >正文

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

目录

1.下载并解压

 2.Eclipse配置

3.报错问题

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

解决方法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 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是我的项目名和包名,请更换成自己的项目和包的名字):

module JavaFX {requires javafx.controls;requires javafx.fxml;opens chapter_14 to javafx.fxml;exports chapter_14;}

这里注意一定要把JavaFX放在Modulepath中

示例代码:

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

输出结果:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Vue】vue-element-admin组件化功能
  • 开始性能测试之前的准备工作!
  • 金龙鱼:只是躺枪?
  • 焊盘的制作
  • STM32-外部中断浅析
  • Android Settings应用 PreferenceScreen 条目隐藏实现和简单分析
  • 102.qt qml-最全Table交互之多列固定、行列拖拽、自定义委托、标题交互使用教程
  • PostGIS2.4服务器编译安装
  • 宝塔面板运行Admin.net框架
  • linux ssh 远程执行shell 获取返回值
  • Objective-C 中的 isa 不再是简单的结构体指针
  • 树莓派pico入坑笔记,dht11使用及温湿度表制作
  • C语言从头学31——与字符串变量相关的几个函数
  • 各地户外分散视频监控点位,如何实现远程集中实时监看?
  • 大整数加法C++
  • ES6核心特性
  • go append函数以及写入
  • KMP算法及优化
  • python3 使用 asyncio 代替线程
  • Vultr 教程目录
  • Zepto.js源码学习之二
  • 阿里研究院入选中国企业智库系统影响力榜
  • 从0到1:PostCSS 插件开发最佳实践
  • 从重复到重用
  • 大整数乘法-表格法
  • 服务器从安装到部署全过程(二)
  • 聊聊directory traversal attack
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 那些被忽略的 JavaScript 数组方法细节
  • 深度学习入门:10门免费线上课程推荐
  • 算法之不定期更新(一)(2018-04-12)
  • 最简单的无缝轮播
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • ​如何使用QGIS制作三维建筑
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (差分)胡桃爱原石
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (转)iOS字体
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .NET 8 跨平台高性能边缘采集网关
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .net core 6 redis操作类
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET中使用Protobuffer 实现序列化和反序列化
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • /etc/sudoers (root权限管理)
  • /proc/vmstat 详解
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [20160807][系统设计的三次迭代]
  • [2023-年度总结]凡是过往,皆为序章
  • [AIGC codze] Kafka 的 rebalance 机制