JAVAFX15的配置与使用
已解决、最全覆盖解决办法(vscode,IDEA,eclipse)
最近学习到JAVAFX但是import javafx失败,查阅后发现我使用的是jdk15,是已经移除了javafx组件的。我灵机一动,直接改用jdk8不就好了,然后发现vscode不支持jdk11以下版本。。。
那只好继续使用jdk15喽,去网上下载javafx并安装,这样我就有了javafx的包
1.我使用的是与jdk15同版本的javafx15.0.1然后创建工程,将lib中的jar和src.zip全部导入

缺少JavaFx运行时 javafx缺失_javafx

编译报错

缺少JavaFx运行时 javafx缺失_jdk_02

2.在网上下载jfxrt.jar,导入lib编译报错

缺少JavaFx运行时 javafx缺失_jar_03

这时我注意到有一行提示Can’t load library: E:\Fundamentals of data structure\chapter4\test\demo\bin\glass.dll,看来只有一个jar是不行的,那我把整个javafx都放在项目文件下呢。。。还是报错

3.既然javafx是独立出去的模块,那我把javafx整合到jdk里面不就可以用了吗,于是我分别将相应文件全部加入到jdk中,还是报错。。。

4.好吧我放弃vscode,启用eclipse并导入

缺少JavaFx运行时 javafx缺失_java_04

写代码

缺少JavaFx运行时 javafx缺失_jar_05

缺少JavaFx运行时 javafx缺失_缺少JavaFx运行时_06


编译报错

缺少JavaFx运行时 javafx缺失_javafx_07

难道是不应该包含这个zip?

我重新进行导入

缺少JavaFx运行时 javafx缺失_jdk_08


继续报错

可能不是configure build path而是add libraries

进行尝试,报错

缺少JavaFx运行时 javafx缺失_jdk_09

观察发现这个错误与vscode遇到的错误一致

emmm

那好吧暂时先用jdk8吧我妥协了,结果jdk8也没找到javafx的东西,可能我下载的版本不对。。。我现在先去吐了,回来继续更新

5.我回来了

官网下的jdk8也不行,还是一样的报错。看来是老天并不允许我妥协啊,老版本还是不要用了,那我继续研究,换个舒服点的工具,我下载了IDEA去编辑创建项目,乖乖,流程跑一遍还是报错no suitable pipeline found

那到底是哪里不suitable了呢,我的jdk和javafx都是15,按理说是匹配的,环境变量也反复检查过了,终于,我意识到可能是操作系统与javafx不匹配?找了自己的下载记录发现之前下载的是x86的,换个x64的下载,又是老三样跑一遍,成功!!!!!

总结:

java8以上版本使用javafx先下载 https://openjfx.io/

一.vscode

1.F1创建java项目

缺少JavaFx运行时 javafx缺失_java_10

2.把javafx下的lib和bin都copy到该项目文件下

3.写两个类测试(写一个类可能会报错,缺少java运行时组件)

App.java

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;

public class App extends Application {
    public void start(Stage primaryStage){
        Button btOK=new Button("OK");
        Scene scene=new Scene(btOK,200,250);
        primaryStage.setTitle("MyJAVAFX");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    

    
    
}

Main.java

import javafx.application.Application;

public class Main {
    public static void main(String [] args){
        Application.launch(App.class);
    }
    
}

运行:

缺少JavaFx运行时 javafx缺失_javafx_11

二、IDEA

1.先创建项目

缺少JavaFx运行时 javafx缺失_jar_12


2.shift + ctrl + alt + s 打开项目结构,进行如下操作:

选中libraries,+,java

缺少JavaFx运行时 javafx缺失_jar_13

3.找到javafx的lib目录选中

缺少JavaFx运行时 javafx缺失_jar_14


4.ctrl + alt + s 打开设置,进行如下操作:

缺少JavaFx运行时 javafx缺失_缺少JavaFx运行时_15


5.添加环境变量,这里我起名为PATH_TO_JAVAFX

value填写javafx的lib的绝对路径

结果如图

缺少JavaFx运行时 javafx缺失_jar_16

6.调虚拟机配置参数

缺少JavaFx运行时 javafx缺失_jdk_17

缺少JavaFx运行时 javafx缺失_jdk_18

--module-path ${PATH_TO_FX} --add-modules javafx.controls,javafx.fxml

编译运行

成功!!

缺少JavaFx运行时 javafx缺失_java_19

三、eclipse

类似于IDEA

1.创建项目不再赘述

2.build path->add libraries

缺少JavaFx运行时 javafx缺失_缺少JavaFx运行时_20

选user libraries

缺少JavaFx运行时 javafx缺失_javafx_21

新建一个库,命名为Javafx15

缺少JavaFx运行时 javafx缺失_java_22

点add external jars

缺少JavaFx运行时 javafx缺失_javafx_23

将javafx lib下的文件全部导入

缺少JavaFx运行时 javafx缺失_jdk_24


应用运行,成功

缺少JavaFx运行时 javafx缺失_jdk_25

这里我是分了两个文件是没有配参数的,一个类写的话需要配置参数

run->run configurations

缺少JavaFx运行时 javafx缺失_jdk_26

VM arguments:

--module-path "\path\to\javafx-sdk-15\lib" --add-modules javafx.controls,javafx.fxml

引号里是填你自己的路径


至此就结束了,我应该是把相关的报错都踩了一遍吧,希望对大家有帮助,解决了问题得小伙伴记得给博主点个赞哦!!!