You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IntelliJ运行JavaFX程序报Location is required空指针错误如何解决

问题根因

报错信息中的NullPointerException: Location is required是核心提示,本质是代码中getClass().getResource("/resource/MainScreen.fxml")返回了null,FXMLLoader接收到空的资源路径无法完成加载,最终触发崩溃。

可执行解决方案

  • 标记资源目录
    右键项目内的resource文件夹,选择「标记目录为」→「资源根」。未做标记的文件夹不会被IntelliJ识别为资源目录,目录内的文件不会被打包到编译后的类路径下,运行时自然无法读取。
  • 校验路径拼写
    确认resource目录下的FXML文件名和代码中书写的MainScreen.fxml完全一致,包括大小写,Java类路径的资源读取是大小写敏感的,拼写有微小差异就会读取失败。
  • 重新编译验证
    完成上述两步后,执行顶部菜单栏「构建」→「重新构建项目」,再启动程序测试即可。
  • 可选:增加空校验便于后续排查
    可以修改代码提前判断资源是否存在,避免直接传入空值触发FXMLLoader的底层报错:
package main;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

import java.io.IOException;
import java.net.URL;

public class MainProgram extends Application {
    @Override
    public void start(Stage stage) throws IOException {
        URL fxmlUrl = getClass().getResource("/resource/MainScreen.fxml");
        if (fxmlUrl == null) {
            throw new RuntimeException("FXML资源不存在,请检查路径配置与资源目录标记状态");
        }
        Parent root = FXMLLoader.load(fxmlUrl);
        stage.setTitle("Inventory Management System");
        stage.setScene(new Scene(root, 750, 500));
        stage.show();
    }
}

内容的提问来源于stack exchange,提问作者Tayne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:06:07