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

JavaFX图片在Scene Builder显示正常 编译运行后不展示问题求助

问题原因

  • 你当前将Images目录放在项目根路径下,不属于Java项目默认的资源打包目录,编译时不会被复制到输出的classpath中。Scene Builder识别的是本地源码路径所以可以正常加载图片,但运行时JavaFX只会从classpath中查找资源,自然找不到对应图片文件。
  • FXML中写的相对路径@../../../Images/471962_nemuli_catstronaut.png是相对于FXML文件在源码目录下的路径,运行时FXML已经被打包到classpath的对应包结构下,这个相对路径完全无法定位到资源。

解决方法

步骤1:调整资源存放位置

将Images整个文件夹移动到src/main/resources目录下,这是Java项目默认的资源目录,该目录下的所有文件都会被自动打包到classpath中。
移动后的图片完整路径应为src/main/resources/Images/471962_nemuli_catstronaut.png。

步骤2:修改FXML中的图片路径

把Image标签的url属性改为从classpath根路径查找的写法,不需要写相对FXML文件的多级相对路径:

<Image url="@/Images/471962_nemuli_catstronaut.png" />

路径开头的/代表从classpath根目录开始查找资源,可以避免相对路径定位错误的问题。

可选校验(Gradle项目)

如果调整后还是不生效,可以打开项目根目录的build.gradle文件,确认资源配置正确,默认JavaFX模板都是正确配置的,缺失的话补充如下配置即可:

sourceSets {
    main {
        resources {
            srcDirs = ['src/main/resources']
        }
    }
}

配置完成后重新编译运行项目即可正常显示图片。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:27:00