Maven + Java FX出现问题:Caused by: java.lang.NullPointerException: Location is required.

Maven + Java FX 路径错误以及配置详解

参考StackOverflow

参考StackOverflow

报错:Caused by: java.lang.NullPointerException: Location is required.

原因:这种错误原因在于路径问题,说明这句话没有找到对应的fxml文件

FXMLLoader connectLoader = new FXMLLoader(getClass().getResource("/ui/ftpClient/client/fxml/loginMain.fxml"));

为什么找不到这个资源呢?明明路径没错啊!

通过这条语句,我们可以看下路径到底在哪里?

	// 查看目录
    System.out.println(getClass().getResource("/"));

得到目录之后,你再去看看该目录里面是否有fxml 文件,如果有,看看你之前的路径哪里错了,如果没有,那是因为maven在编译过程中忽略了.fxml文件

可以进行如下配置:(这样编译过程就包含了src/main/java目录下的fxml文件了

<build>
    ...
    <resources>
        <resource>
            <filtering>false</filtering>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.fxml</include>
            </includes>             
        </resource>
    </resources>
    ...
</build>

我的解决方法

方法一

根据前面这条语句:

	// 查看目录
    System.out.println(getClass().getResource("/"));

修改new FXMLLoader(getClass().getResource("/ui/ftpClient/client/fxml/loginMain.fxml"));的目录即可,使得该目录下有fxml文件

方法二

问题来了,我参照StackOverflow上的配置完成后依旧报错!

项目背景:我的JavaFx 项目是项目中的一部分也就是说在主目录下只有某一个文件夹是我的项目目录

经过漫长的尝试,我终于解决了:

  1. 在IDEA中打开Project Structrue,点击左边的module
    在这里插入图片描述
    上图可以看出:第一个即是我整个项目的主目录,我的JavaFx仅仅是主目录下的一个子目录,此时我们要点击那个加号

  2. 选择Import Module

在这里插入图片描述

  1. 选择我的子目录,如下图:
    在这里插入图片描述
  2. 完成后就是我这个样子,记得设置Source和Out(如下图,这里就不说啦)
    在这里插入图片描述

然后终于成功了!

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值